Rebase to upstream development version 2.5.9

Fix display of incorrect Windows 11 version
  resolves: RHEL-56784
Add customization options for post-conversion modification
  resolves: RHEL-55761
convert: windows: Ignore sriov drivers on virtio-win disk
  resolves: RHEL-56383
This commit is contained in:
Richard W.M. Jones 2024-09-05 09:15:43 +01:00
parent ca3ed2cc5f
commit ae89f3e094
31 changed files with 31543 additions and 693 deletions

View File

@ -0,0 +1,39 @@
From 4b39b7bd0f7f8cc3069df7e32f2dc35140a2b6d3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sat, 31 Aug 2024 09:25:50 +0100
Subject: [PATCH] convert: Display osinfo in "Converting ..." message
eg:
[ 9.3] Converting Windows Server 2022 Phony Edition (win2k22) to run on KVM
Reported-by: Ming Xie
Fixes: https://issues.redhat.com/browse/RHEL-56784
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
---
convert/convert.ml | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/convert/convert.ml b/convert/convert.ml
index 5d955599..64b36c97 100644
--- a/convert/convert.ml
+++ b/convert/convert.ml
@@ -220,11 +220,15 @@ and do_fstrim g inspect =
(* Conversion. *)
and do_convert g source inspect i_firmware
block_driver keep_serial_console interfaces =
- (match inspect.i_product_name with
- | "unknown" ->
+ (match inspect.i_product_name, inspect.i_osinfo with
+ | "unknown", "unknown" ->
message (f_"Converting the guest to run on KVM")
- | prod ->
+ | "unknown", osinfo ->
+ message (f_"Converting %s guest to run on KVM") osinfo
+ | prod, "unknown" ->
message (f_"Converting %s to run on KVM") prod
+ | prod, osinfo ->
+ message (f_"Converting %s (%s) to run on KVM") prod osinfo
);
let convert, conversion_name =

View File

@ -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.

View File

@ -0,0 +1,103 @@
From 00692c57b0adde6fb3a202ae307bdf55b6f6e5cf Mon Sep 17 00:00:00 2001
From: Andi Chandler <andi@gowling.com>
Date: Mon, 2 Sep 2024 15:38:35 +0200
Subject: [PATCH] Translated using Weblate (English (United Kingdom))
Currently translated at 4.9% (65 of 1305 strings)
Translation: libguestfs/virt-v2v-docs-master
Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-docs-master/en_GB/
---
po-docs/en_GB.po | 36 +++++++++++++++++++++++++++++-------
1 file changed, 29 insertions(+), 7 deletions(-)
diff --git a/po-docs/en_GB.po b/po-docs/en_GB.po
index 0aed20e0..0b181a34 100644
--- a/po-docs/en_GB.po
+++ b/po-docs/en_GB.po
@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: libguestfs 1.39.12\n"
"Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\n"
"POT-Creation-Date: 2020-08-13 13:17+0200\n"
-"PO-Revision-Date: 2015-02-21 10:15+0000\n"
-"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
-"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/"
-"libguestfs/language/en_GB/)\n"
+"PO-Revision-Date: 2024-09-02 13:38+0000\n"
+"Last-Translator: Andi Chandler <andi@gowling.com>\n"
+"Language-Team: English (United Kingdom) <https://translate.fedoraproject.org/"
+"projects/libguestfs/virt-v2v-docs-master/en_GB/>\n"
"Language: en_GB\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Zanata 4.6.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.7.1\n"
#. type: =end
#: common/mlcustomize/customize-options.pod:1
@@ -38,6 +38,12 @@ msgid ""
" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\n"
"\n"
msgstr ""
+"libguestfs generated file\n"
+" WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\n"
+" generator/customize.ml\n"
+" and from the code in the generator/ subdirectory.\n"
+" ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\n"
+"\n"
#. type: verbatim
#: common/mlcustomize/customize-options.pod:9
@@ -46,6 +52,8 @@ msgid ""
" Copyright (C) 2009-2020 Red Hat Inc.\n"
"\n"
msgstr ""
+" Copyright (C) 2009-2020 Red Hat Inc.\n"
+"\n"
#. type: verbatim
#: common/mlcustomize/customize-options.pod:11
@@ -57,6 +65,11 @@ msgid ""
" (at your option) any later version.\n"
"\n"
msgstr ""
+" This program is free software; you can redistribute it and/or modify\n"
+" it under the terms of the GNU General Public Licence as published by\n"
+" the Free Software Foundation; either version 2 of the Licence, or\n"
+" (at your option) any later version.\n"
+"\n"
#. type: verbatim
#: common/mlcustomize/customize-options.pod:16
@@ -68,6 +81,11 @@ msgid ""
" GNU General Public License for more details.\n"
"\n"
msgstr ""
+" This program is distributed in the hope that it will be useful,\n"
+" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+" GNU General Public Licence for more details.\n"
+"\n"
#. type: verbatim
#: common/mlcustomize/customize-options.pod:21
@@ -78,11 +96,15 @@ msgid ""
" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n"
"\n"
msgstr ""
+" You should have received a copy of the GNU General Public Licence along\n"
+" with this program; if not, write to the Free Software Foundation, Inc.,\n"
+" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n"
+"\n"
#. type: =item
#: common/mlcustomize/customize-options.pod:29
msgid "B<--append-line> FILE:LINE"
-msgstr ""
+msgstr "B<--append-line> FILE:LINE"
#. type: textblock
#: common/mlcustomize/customize-options.pod:31

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -0,0 +1,161 @@
From e34f5c7e4430764d4402d1364072299c0e9395b8 Mon Sep 17 00:00:00 2001
From: Yuri Chornoivan <yurchor@ukr.net>
Date: Tue, 3 Sep 2024 16:41:33 +0200
Subject: [PATCH] Translated using Weblate (Ukrainian)
Currently translated at 95.4% (527 of 552 strings)
Translation: libguestfs/virt-v2v-master
Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/uk/
---
po/uk.po | 39 +++++++++++++++++++--------------------
1 file changed, 19 insertions(+), 20 deletions(-)
diff --git a/po/uk.po b/po/uk.po
index 047434a7..8a2891ec 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -12,10 +12,10 @@
msgid ""
msgstr ""
"Project-Id-Version: libguestfs 1.39.12\n"
-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
-"component=libguestfs&product=Virtualization+Tools\n"
+"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug."
+"cgi?component=libguestfs&product=Virtualization+Tools\n"
"POT-Creation-Date: 2024-08-29 15:25+0100\n"
-"PO-Revision-Date: 2023-06-05 07:20+0000\n"
+"PO-Revision-Date: 2024-09-03 14:41+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
"libguestfs/virt-v2v-master/uk/>\n"
@@ -25,7 +25,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.17\n"
+"X-Generator: Weblate 5.7.1\n"
#: input/input_ova.ml:136 common/mltools/tools_utils.ml:235
msgid "%s"
@@ -77,7 +77,7 @@ msgstr ""
#: common/mlcustomize/customize_run.ml:121
msgid "%s ignored for non-Windows guest"
-msgstr ""
+msgstr "%s проігноровано для відмінної від Windows гостьової системи"
#: common/mlcustomize/customize_run.ml:194
#, fuzzy
@@ -243,24 +243,29 @@ msgstr ""
#: common/mlcustomize/customize_run.ml:160
msgid "--chown: could not parse numeric UID:GID from %s:%s"
-msgstr ""
+msgstr "--chown: не вдалося визначити числові значення UID:GID на основі %s:%s"
#: common/mlcustomize/customize_run.ml:224
msgid ""
"--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified"
msgstr ""
+"--inject-blnsvr: blnsvr.exe не знайдено у вказаному вами джерелі virtio-win"
#: common/mlcustomize/customize_run.ml:233
msgid ""
"--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that "
"you specified"
msgstr ""
+"--inject-qemu-ga: не знайдено MSI гостьового агента QEMU у вказаному вами "
+"джерелі virtio-win"
#: common/mlcustomize/customize_run.ml:249
msgid ""
"--inject-virtio-win: virtio drivers were not found for this Windows version "
"in the virtio-win source that you specified"
msgstr ""
+"--inject-virtio-win: не знайдено драйверів virtio для цієї версії Windows у "
+"вказаному вами джерелі virtio-win"
#: v2v/v2v.ml:144 inspector/inspector.ml:131 in-place/in_place.ml:125
msgid "--mac ip prefix length field is out of range"
@@ -586,7 +591,7 @@ msgstr "Завантажитися у qemu (лише для -o qemu)"
#: common/mlcustomize/customize_cmdline.ml:209
msgid "Change the owner user and group ID of a file or directory"
-msgstr ""
+msgstr "Змінити ідентифікатор користувача і групи власника файла або каталогу"
#: common/mlcustomize/customize_cmdline.ml:198
msgid "Change the permissions of a file"
@@ -594,7 +599,7 @@ msgstr "Змінити права доступу до файла"
#: common/mlcustomize/customize_run.ml:163
msgid "Changing owner of %s to %d:%d"
-msgstr ""
+msgstr "Змінюємо власника %s на %d:%d"
#: common/mlcustomize/customize_run.ml:149
#, fuzzy
@@ -615,10 +620,8 @@ msgid "Copy files in disk image"
msgstr "Копіювати файли на образ диска"
#: common/mlcustomize/customize_cmdline.ml:438
-#, fuzzy
-#| msgid "Copy local files or directories into image"
msgid "Copy local files or directories from a tarball into image"
-msgstr "Копіювати локальні файли або каталоги до образу"
+msgstr "Копіювати локальні файли або каталоги з архіву tar до образу"
#: common/mlcustomize/customize_cmdline.ml:242
msgid "Copy local files or directories into image"
@@ -769,10 +772,8 @@ msgid "Inject a public key into the guest"
msgstr "Вставити відкритий ключ до гостьової системи"
#: common/mlcustomize/customize_cmdline.ml:294
-#, fuzzy
-#| msgid "Inject virtio-win drivers into a Windows guest"
msgid "Inject the Balloon Server into a Windows guest"
-msgstr "Вставити драйвери virtio-win до гостьової системи Windows"
+msgstr "Вставити Balloon Server до гостьової системи Windows"
#: common/mlcustomize/customize_cmdline.ml:300
msgid "Inject the QEMU Guest Agent into a Windows guest"
@@ -1167,7 +1168,7 @@ msgstr "ДЖЕРЕЛО:ПРИЗНАЧЕННЯ"
#: common/mlcustomize/customize_run.ml:332
msgid "SSH key could not be injected for this type of guest"
-msgstr ""
+msgstr "Ключ SSH не можна вставляти до цього типу гостьових систем"
#: common/mlcustomize/customize_run.ml:329
msgid "SSH key inject: %s"
@@ -1364,10 +1365,8 @@ msgid "Specify a LUKS key"
msgstr "Вказати ключ LUKS"
#: common/mlcustomize/customize_cmdline.ml:433
-#, fuzzy
-#| msgid "LOCALPATH:REMOTEDIR"
msgid "TARFILE:REMOTEDIR"
-msgstr "ЛОКАЛЬНИЙШЛЯХ:ВІДДАЛЕНИЙКАТАЛОГ"
+msgstr "ФАЙЛTAR:ВІДДАЛЕНИЙКАТАЛОГ"
#: common/mlcustomize/customize_cmdline.ml:323
msgid "TARGET:LINK[:LINK..]"
@@ -1435,7 +1434,7 @@ msgstr "%s: попередження: %s"
#: common/mlcustomize/customize_cmdline.ml:204
msgid "UID:GID:PATH"
-msgstr ""
+msgstr "UID:GID:ШЛЯХ"
#: common/mlcustomize/customize_cmdline.ml:351
msgid "USER:SELECTOR"
@@ -1457,7 +1456,7 @@ msgstr "Вилучити пакунки"
#: common/mlcustomize/customize_run.ml:335
msgid "Unpack tar file: %s to %s"
-msgstr ""
+msgstr "Розпаковування файла tar: %s до %s"
#: common/mlcustomize/customize_cmdline.ml:415
msgid "Unregister using subscription-manager"

View File

@ -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

View File

@ -0,0 +1,427 @@
From e618c18bf4c865e72f5ed4873abafccccaba24e1 Mon Sep 17 00:00:00 2001
From: Weblate Translation Memory
<noreply-mt-weblate-translation-memory@weblate.org>
Date: Tue, 3 Sep 2024 16:41:33 +0200
Subject: [PATCH] Translated using Weblate (Ukrainian)
Currently translated at 95.4% (527 of 552 strings)
Translation: libguestfs/virt-v2v-master
Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/uk/
---
po/uk.po | 138 +++++++++++++++++++------------------------------------
1 file changed, 46 insertions(+), 92 deletions(-)
diff --git a/po/uk.po b/po/uk.po
index 8a2891ec..8b616872 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -16,7 +16,8 @@ msgstr ""
"cgi?component=libguestfs&product=Virtualization+Tools\n"
"POT-Creation-Date: 2024-08-29 15:25+0100\n"
"PO-Revision-Date: 2024-09-03 14:41+0000\n"
-"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
+"memory@weblate.org>\n"
"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
"libguestfs/virt-v2v-master/uk/>\n"
"Language: uk\n"
@@ -49,7 +50,7 @@ msgstr "%s не повернуто жодних даних"
#: common/mlcustomize/customize_run.ml:191
msgid "%s does not exist in the guest"
-msgstr ""
+msgstr "%s не існує у гостьовій системі"
#: output/output_rhv.ml:273
msgid ""
@@ -80,10 +81,8 @@ msgid "%s ignored for non-Windows guest"
msgstr "%s проігноровано для відмінної від Windows гостьової системи"
#: common/mlcustomize/customize_run.ml:194
-#, fuzzy
-#| msgid "Inject a public key into the guest"
msgid "%s is not a regular file in the guest"
-msgstr "Вставити відкритий ключ до гостьової системи"
+msgstr "%s не є звичайним файлом у гостьовій системі"
#. inspector/inspector.ml:151
#. inspector/inspector.ml:40
@@ -114,10 +113,8 @@ msgid "%s: cannot open virtio-win ISO file: %s"
msgstr "%s: не вдалося відкрити файл ISO virtio-win: %s"
#: common/mlcustomize/customize_run.ml:72
-#, fuzzy
-#| msgid "external command %s exited with error %d"
msgid "%s: command exited with an error"
-msgstr "виконання зовнішньої програми «%s» завершилося помилкою %d"
+msgstr "%s: виконання команди завершилося повідомленням про помилку"
#: v2v/v2v.ml:326
msgid ""
@@ -240,6 +237,9 @@ msgid ""
"--append-line: line must not contain newline characters. Use the --append-"
"line option multiple times to add several lines."
msgstr ""
+"--append-line: рядок не повинен містити символів розриву рядка. "
+"Скористайтеся параметром --append-line потрібну кількість разів, щоб додати "
+"декілька рядків."
#: common/mlcustomize/customize_run.ml:160
msgid "--chown: could not parse numeric UID:GID from %s:%s"
@@ -564,26 +564,20 @@ msgid "Append line(s) to the file"
msgstr "Дописати рядки до файла"
#: common/mlcustomize/customize_run.ml:145
-#, fuzzy
-#| msgid "Append line(s) to the file"
msgid "Appending line to %s"
-msgstr "Дописати рядки до файла"
+msgstr "Дописуємо рядок до %s"
#: common/mlcustomize/customize_cmdline.ml:397
msgid "Attach to a subscription-manager pool"
msgstr "Долучити до буфера subscription-manager"
#: common/mlcustomize/customize_run.ml:293
-#, fuzzy
-#| msgid "Attach to a subscription-manager pool"
msgid "Attaching to compatible subscriptions"
-msgstr "Долучити до буфера subscription-manager"
+msgstr "Долучаємо до сумісних підписок"
#: common/mlcustomize/customize_run.ml:297
-#, fuzzy
-#| msgid "Setting up the source: %s"
msgid "Attaching to the pool %s"
-msgstr "Налаштовуємо джерело: %s"
+msgstr "Долучаємо до буфера %s"
#: v2v/v2v.ml:281
msgid "Boot in qemu (-o qemu only)"
@@ -602,10 +596,8 @@ msgid "Changing owner of %s to %d:%d"
msgstr "Змінюємо власника %s на %d:%d"
#: common/mlcustomize/customize_run.ml:149
-#, fuzzy
-#| msgid "Change the permissions of a file"
msgid "Changing permissions of %s to %s"
-msgstr "Змінити права доступу до файла"
+msgstr "Зміна прав доступу до %s на %s"
#: common/mlcustomize/customize_cmdline.ml:529
msgid "Compatibility option doing nothing"
@@ -628,20 +620,16 @@ msgid "Copy local files or directories into image"
msgstr "Копіювати локальні файли або каталоги до образу"
#: common/mlcustomize/customize_run.ml:176
-#, fuzzy
-#| msgid "Copying remote disk %d/%d to %s"
msgid "Copying (in image): %s to %s"
-msgstr "Копіюємо віддалений диск %d з %d до %s"
+msgstr "Копіюємо (на образ): %s у %s"
#: v2v/v2v.ml:616
msgid "Copying disk %d/%d"
msgstr "Копіювання диска %d з %d"
#: common/mlcustomize/customize_run.ml:180
-#, fuzzy
-#| msgid "Copying disk %d/%d to %s (%s)"
msgid "Copying: %s to %s"
-msgstr "Копіювання диска %d з %d на %s (%s)"
+msgstr "Копіюємо %s до %s"
#: common/mlcustomize/customize_cmdline.ml:334
msgid "Create a directory"
@@ -668,10 +656,8 @@ msgid "Delete a file or directory"
msgstr "Вилучити файл або каталог"
#: common/mlcustomize/customize_run.ml:184
-#, fuzzy
-#| msgid "exception: %s"
msgid "Deleting: %s"
-msgstr "виключення: %s"
+msgstr "Вилучаємо: %s"
#: common/mltools/getopt.ml:229
msgid "Display brief help"
@@ -699,7 +685,7 @@ msgstr "Редагувати файл за допомогою виразу Perl"
#: common/mlcustomize/customize_run.ml:188
msgid "Editing: %s"
-msgstr ""
+msgstr "Редагування: %s"
#: common/mltools/tools_utils.ml:386
msgid "Enable libguestfs debugging messages"
@@ -837,21 +823,19 @@ msgstr "Вхідне передавання"
#: common/mlcustomize/customize_run.ml:199
msgid "Installing firstboot command: %s"
-msgstr ""
+msgstr "Встановлюємо програму firstboot: %s"
#: common/mlcustomize/customize_run.ml:203
msgid "Installing firstboot packages: %s"
-msgstr ""
+msgstr "Встановлюємо пакунки firstboot: %s"
#: common/mlcustomize/customize_run.ml:210
msgid "Installing firstboot script: %s"
-msgstr ""
+msgstr "Встановлюємо скрипт firstboot: %s"
#: common/mlcustomize/customize_run.ml:256
-#, fuzzy
-#| msgid "Uninstall package(s)"
msgid "Installing packages: %s"
-msgstr "Вилучити пакунки"
+msgstr "Встановлюємо пакунки: %s"
#: common/mlcustomize/customize_cmdline.ml:237
msgid "LOCALPATH:REMOTEDIR"
@@ -863,7 +847,7 @@ msgstr "Адреса libvirt"
#: common/mlcustomize/customize_run.ml:263
msgid "Linking: %s -> %s"
-msgstr ""
+msgstr "Компонування: %s -> %s"
#. common/mlcustomize/customize_cmdline.ml:299
#. common/mlcustomize/customize_cmdline.ml:293
@@ -877,7 +861,7 @@ msgstr "Зробити машину виведення придатною до
#: common/mlcustomize/customize_run.ml:268
msgid "Making directory: %s"
-msgstr ""
+msgstr "Створюємо каталог: %s"
#: v2v/v2v.ml:255 inspector/inspector.ml:178 in-place/in_place.ml:175
msgid "Map NIC to network or bridge or assign static IP"
@@ -898,7 +882,7 @@ msgstr "Пересунути файли на образ диска"
#: common/mlcustomize/customize_run.ml:272
msgid "Moving: %s -> %s"
-msgstr ""
+msgstr "Пересуваємо: %s -> %s"
#. input/input_vcenter_https.ml:45
#. input/input_ova.ml:36
@@ -1085,30 +1069,24 @@ msgid "Recursively truncate all files in directory"
msgstr "Рекурсивно обрізати усі файли у каталозі"
#: common/mlcustomize/customize_run.ml:343
-#, fuzzy
-#| msgid "Recursively truncate all files in directory"
msgid "Recursively truncating: %s"
-msgstr "Рекурсивно обрізати усі файли у каталозі"
+msgstr "Рекурсивно обрізаємо: %s"
#: common/mlcustomize/customize_cmdline.ml:403
msgid "Register using subscription-manager"
msgstr "Зареєструвати за допомогою subscription-manager"
#: common/mlcustomize/customize_run.ml:303
-#, fuzzy
-#| msgid "Register using subscription-manager"
msgid "Registering with subscription-manager"
-msgstr "Зареєструвати за допомогою subscription-manager"
+msgstr "Реєструємо за допомогою subscription-manager"
#: common/mlcustomize/customize_cmdline.ml:409
msgid "Remove all the subscriptions"
msgstr "Вилучити усі підписки"
#: common/mlcustomize/customize_run.ml:318
-#, fuzzy
-#| msgid "Remove all the subscriptions"
msgid "Removing all the subscriptions"
-msgstr "Вилучити усі підписки"
+msgstr "Вилучаємо усі підписки"
#: v2v/v2v.ml:269
msgid "Rename guest when converting"
@@ -1136,14 +1114,12 @@ msgstr "Обробити файл за допомогою touch"
#: common/mlcustomize/customize_run.ml:352
msgid "Running touch: %s"
-msgstr ""
+msgstr "Виконуємо touch: %s"
#. common/mlcustomize/customize_run.ml:167
#: common/mlcustomize/customize_run.ml:282
-#, fuzzy
-#| msgid "%s: warning: %s"
msgid "Running: %s"
-msgstr "%s: попередження: %s"
+msgstr "Виконуємо: %s"
#. common/mlcustomize/customize_cmdline.ml:264
#: common/mlcustomize/customize_cmdline.ml:373
@@ -1159,7 +1135,7 @@ msgstr "СЕЛЕКТОР"
#: common/mlcustomize/customize_run.ml:408
msgid "SELinux relabelling"
-msgstr ""
+msgstr "Зміна міток SELinux"
#. common/mlcustomize/customize_cmdline.ml:226
#: common/mlcustomize/customize_cmdline.ml:340
@@ -1172,7 +1148,7 @@ msgstr "Ключ SSH не можна вставляти до цього типу
#: common/mlcustomize/customize_run.ml:329
msgid "SSH key inject: %s"
-msgstr ""
+msgstr "Вставлення ключа SSH: %s"
#: v2v/v2v.ml:285
msgid "Same as -io vddk-config=filename"
@@ -1243,14 +1219,12 @@ msgid "Scrub build log file"
msgstr "Витерти файл журналу збирання"
#: common/mlcustomize/customize_run.ml:419
-#, fuzzy
-#| msgid "Scrub build log file"
msgid "Scrubbing the log file"
-msgstr "Витерти файл журналу збирання"
+msgstr "Витираємо файл журналу"
#: common/mlcustomize/customize_run.ml:287
msgid "Scrubbing: %s"
-msgstr ""
+msgstr "Витираємо: %s"
#: v2v/v2v.ml:233
msgid "Set bandwidth dynamically from file"
@@ -1318,35 +1292,27 @@ msgstr "Встановити пароль користувача"
#: common/mlcustomize/customize_run.ml:83
msgid "Setting a random seed"
-msgstr ""
+msgstr "Встановлюємо базу випадковості"
#: common/mlcustomize/customize_run.ml:399
-#, fuzzy
-#| msgid "Set root password"
msgid "Setting passwords"
-msgstr "Встановлення пароля root"
+msgstr "Встановлення паролів"
#: common/mlcustomize/password.ml:113
msgid "Setting random password of %s to %s"
-msgstr ""
+msgstr "Встановлюємо випадковий пароль %s у значення %s"
#: common/mlcustomize/customize_run.ml:215
-#, fuzzy
-#| msgid "Set the hostname"
msgid "Setting the hostname: %s"
-msgstr "Встановити назву вузла"
+msgstr "Встановлюємо назву вузла: %s"
#: common/mlcustomize/customize_run.ml:98
-#, fuzzy
-#| msgid "Setting up the destination: %s"
msgid "Setting the machine ID in %s"
-msgstr "Налаштовуємо призначення: %s"
+msgstr "Встановлюємо ідентифікатор комп'ютера у %s"
#: common/mlcustomize/customize_run.ml:347
-#, fuzzy
-#| msgid "Setting up the destination: %s"
msgid "Setting the timezone: %s"
-msgstr "Налаштовуємо призначення: %s"
+msgstr "Встановлюємо часовий пояс: %s"
#: v2v/v2v.ml:588
msgid "Setting up the destination: %s"
@@ -1427,10 +1393,8 @@ msgid "Truncate a file to zero size"
msgstr "Обрізати файл до нульового розміру"
#: common/mlcustomize/customize_run.ml:339
-#, fuzzy
-#| msgid "%s: warning: %s"
msgid "Truncating: %s"
-msgstr "%s: попередження: %s"
+msgstr "Обрізаємо: %s"
#: common/mlcustomize/customize_cmdline.ml:204
msgid "UID:GID:PATH"
@@ -1449,10 +1413,8 @@ msgid "Uninstall package(s)"
msgstr "Вилучити пакунки"
#: common/mlcustomize/customize_run.ml:356
-#, fuzzy
-#| msgid "Uninstall package(s)"
msgid "Uninstalling packages: %s"
-msgstr "Вилучити пакунки"
+msgstr "Вилучаємо пакунки: %s"
#: common/mlcustomize/customize_run.ml:335
msgid "Unpack tar file: %s to %s"
@@ -1463,20 +1425,16 @@ msgid "Unregister using subscription-manager"
msgstr "Скасувати реєстрацію за допомогою subscription-manager"
#: common/mlcustomize/customize_run.ml:323
-#, fuzzy
-#| msgid "Unregister using subscription-manager"
msgid "Unregistering with subscription-manager"
-msgstr "Скасувати реєстрацію за допомогою subscription-manager"
+msgstr "Скасовуємо реєстрацію за допомогою subscription-manager"
#: common/mlcustomize/customize_cmdline.ml:479
msgid "Update packages"
msgstr "Оновити пакунки"
#: common/mlcustomize/customize_run.ml:361
-#, fuzzy
-#| msgid "Update packages"
msgid "Updating packages"
-msgstr "Оновити пакунки"
+msgstr "Оновлюємо пакунки"
#: common/mlcustomize/customize_cmdline.ml:490
msgid "Upload local file to destination"
@@ -1484,7 +1442,7 @@ msgstr "Вивантажити локальний файл у систему п
#: common/mlcustomize/customize_run.ml:366
msgid "Uploading: %s to %s"
-msgstr ""
+msgstr "Вивантажуємо: %s до %s"
#: common/mltools/tools_utils.ml:391
msgid "Use ANSI colour sequences even if not tty"
@@ -1511,10 +1469,8 @@ msgid "Write file"
msgstr "Записати файл"
#: common/mlcustomize/customize_run.ml:391
-#, fuzzy
-#| msgid "%s: warning: %s"
msgid "Writing: %s"
-msgstr "%s: попередження: %s"
+msgstr "Записуємо: %s"
#: lib/YAML.ml:162
msgid ""
@@ -1556,10 +1512,8 @@ msgstr ""
"допомогою команди «virsh undefine»."
#: common/mlcustomize/append_line.ml:44
-#, fuzzy
-#| msgid "Append line(s) to the file"
msgid "append_line: %s is not a file"
-msgstr "Дописати рядки до файла"
+msgstr "append_line: %s не є файлом"
#: lib/utils.ml:83
msgid ""
@@ -1827,7 +1781,7 @@ msgstr ""
#: common/mltools/curl.ml:82
msgid "downloading %s"
-msgstr ""
+msgstr "Отримуємо: %s"
#: lib/networks.ml:84
msgid ""

View File

@ -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)

View File

@ -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

View File

@ -0,0 +1,110 @@
From 5b6fd116685d605207df014d693da5b5607274a8 Mon Sep 17 00:00:00 2001
From: Yuri Chornoivan <yurchor@ukr.net>
Date: Wed, 4 Sep 2024 17:38:40 +0200
Subject: [PATCH] Translated using Weblate (Ukrainian)
Currently translated at 100.0% (552 of 552 strings)
Translation: libguestfs/virt-v2v-master
Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/uk/
---
po/uk.po | 27 ++++++++++++---------------
1 file changed, 12 insertions(+), 15 deletions(-)
diff --git a/po/uk.po b/po/uk.po
index 8b616872..7c688b5b 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -15,9 +15,8 @@ msgstr ""
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug."
"cgi?component=libguestfs&product=Virtualization+Tools\n"
"POT-Creation-Date: 2024-08-29 15:25+0100\n"
-"PO-Revision-Date: 2024-09-03 14:41+0000\n"
-"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
-"memory@weblate.org>\n"
+"PO-Revision-Date: 2024-09-04 15:38+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
"libguestfs/virt-v2v-master/uk/>\n"
"Language: uk\n"
@@ -1272,7 +1271,7 @@ msgstr "Встановити назву програми"
#: common/mlcustomize/customize_cmdline.ml:368
msgid "Set root password"
-msgstr "Встановлення пароля root"
+msgstr "Встановити пароль root"
#: common/mlcustomize/customize_cmdline.ml:444
msgid "Set the default timezone"
@@ -1781,7 +1780,7 @@ msgstr ""
#: common/mltools/curl.ml:82
msgid "downloading %s"
-msgstr "Отримуємо: %s"
+msgstr "отримуємо %s"
#: lib/networks.ml:84
msgid ""
@@ -1829,10 +1828,8 @@ msgid "exception: %s"
msgstr "виключення: %s"
#: common/mltools/tools_utils.ml:455
-#, fuzzy
-#| msgid "%s exited with error status %d"
msgid "exited with error %d"
-msgstr "Роботу %s завершено зі станом виходу %d"
+msgstr "завершено роботу з помилкою %d"
#: input/input_disk.ml:143
msgid "expected >= 1 disk name on the command line"
@@ -1847,7 +1844,7 @@ msgstr ""
#: common/mltools/tools_utils.ml:440
msgid "external command"
-msgstr ""
+msgstr "зовнішня команда"
#: output/output_rhv_upload.ml:275
msgid "failed server prechecks, see earlier errors"
@@ -2124,10 +2121,8 @@ msgid "kernel %s is not under grub tree %s"
msgstr "ядро %s перебуває поза ієрархією grub %s"
#: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458
-#, fuzzy
-#| msgid "%s killed by signal %d (%s)"
msgid "killed by signal %d"
-msgstr "Роботу %s припинено за допомогою сигналу %d (%s)"
+msgstr "припинено за допомогою сигналу %d"
#: common/mltools/tools_utils.ml:237
msgid "libguestfs error: %s"
@@ -2516,6 +2511,8 @@ msgid ""
"password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" "
"or \"yescrypt\""
msgstr ""
+"password-crypto: невідомий алгоритм %s, скористайтеся \"md5\", \"sha256\", "
+"\"sha512\" або \"yescrypt\""
#: common/mlcustomize/password.ml:196
msgid ""
@@ -2663,10 +2660,8 @@ msgid "ssh-inject: the user %s does not exist on the guest"
msgstr ""
#: common/mltools/tools_utils.ml:542 common/mltools/tools_utils.ml:461
-#, fuzzy
-#| msgid "%s stopped by signal %d (%s)"
msgid "stopped by signal %d"
-msgstr "Роботу %s завершено за допомогою сигналу %d (%s)"
+msgstr "завершено за допомогою сигналу %d"
#: output/changeuid.ml:58
msgid "subprocess exited with non-zero error code %d"
@@ -2873,6 +2868,8 @@ msgstr ""
#: common/mlcustomize/timezone.ml:35
msgid "timezone '%s' does not exist, use a location like 'Europe/London'"
msgstr ""
+"часового поясу «%s» не існує, скористайтеся зазначенням міста, наприклад '"
+"Europe/London'"
#: common/mlcustomize/customize_run.ml:349
msgid "timezone could not be set for this type of guest"

View File

@ -0,0 +1,181 @@
From 33717800c6612bc1676c670ac2f9e0c5bb06fb78 Mon Sep 17 00:00:00 2001
From: Weblate Translation Memory
<noreply-mt-weblate-translation-memory@weblate.org>
Date: Wed, 4 Sep 2024 17:38:40 +0200
Subject: [PATCH] Translated using Weblate (Ukrainian)
Currently translated at 100.0% (552 of 552 strings)
Translation: libguestfs/virt-v2v-master
Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/uk/
---
po/uk.po | 53 ++++++++++++++++++++++++++++++-----------------------
1 file changed, 30 insertions(+), 23 deletions(-)
diff --git a/po/uk.po b/po/uk.po
index 7c688b5b..1166c04f 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -16,7 +16,8 @@ msgstr ""
"cgi?component=libguestfs&product=Virtualization+Tools\n"
"POT-Creation-Date: 2024-08-29 15:25+0100\n"
"PO-Revision-Date: 2024-09-04 15:38+0000\n"
-"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
+"memory@weblate.org>\n"
"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
"libguestfs/virt-v2v-master/uk/>\n"
"Language: uk\n"
@@ -1940,10 +1941,14 @@ msgid ""
"command line options that involve running commands in the guest. Use --"
"firstboot scripts instead."
msgstr ""
+"процесор основної системи (%s) і архітектура гостьової системи (%s) є "
+"несумісними, отже ви не можете скористатися параметрами командного рядка, "
+"зокрема запускати програми у гостьовій системі. Замість цього слід "
+"користуватися скриптами --firstboot."
#: common/mlcustomize/customize_run.ml:217
msgid "hostname could not be set for this type of guest"
-msgstr ""
+msgstr "для цього типу гостьових систем не можна встановлювати назви вузла"
#: common/mldrivers/linux_kernels.ml:340
msgid "ignoring kernel %s in bootloader, as it does not exist."
@@ -2085,28 +2090,24 @@ msgid "invalid output stream for --machine-readable: %s"
msgstr "некоректне потік виведення для --machine-readable: %s"
#: common/mlcustomize/password.ml:73
-#, fuzzy
-#| msgid "invalid format for '--%s' parameter, see the man page"
msgid "invalid password selector %s; see the man page"
-msgstr "некоректний формат параметра «--%s», див. сторінку підручника"
+msgstr "некоректний варіант пароля «%s»; див. сторінку man"
#: input/OVA.ml:450
msgid "invalid size returned by tar: %S"
msgstr "tar повернуто некоректний розмір: %S"
#: common/mlcustomize/subscription_manager.ml:54
-#, fuzzy
-#| msgid "invalid format for '--%s' parameter, see the man page"
msgid "invalid sm-attach selector %s; see the man page"
-msgstr "некоректний формат параметра «--%s», див. сторінку підручника"
+msgstr "некоректний варіант sm-attach «%s»; див. сторінку man"
#: common/mlcustomize/subscription_manager.ml:41
msgid "invalid sm-credentials selector %s; see the man page"
-msgstr ""
+msgstr "некоректний варіант sm-credentials «%s»; див. сторінку man"
#: common/mlcustomize/ssh_key.ml:45
msgid "invalid ssh-inject selector %s; see the man page"
-msgstr ""
+msgstr "некоректний варіант ssh-inject «%s»; див. сторінку man"
#: input/OVF.ml:82
msgid "invalid vmw:CoresPerSocket (%d) ignored"
@@ -2137,10 +2138,8 @@ msgstr ""
"для виконання перетворення virt-v2v"
#: common/mlcustomize/customize_run.ml:47
-#, fuzzy
-#| msgid "%s (ignored)"
msgid "log file %s: %s (ignored)"
-msgstr "%s (проігноровано)"
+msgstr "файл журналу %s: %s (проігноровано)"
#: input/OVA.ml:147
msgid ""
@@ -2188,6 +2187,8 @@ msgid ""
"multiple --root-password/--password options set the password for user %s "
"twice"
msgstr ""
+"параметрами --root-password/--password двічі встановлено пароль для "
+"користувача «%s»"
#: v2v/v2v.ml:704
msgid "nbdcopy command failed, see earlier error messages"
@@ -2520,10 +2521,14 @@ msgid ""
"version %d.%d.\n"
"If this is incorrect, use --password-crypto option and file a bug."
msgstr ""
+"пароль: використано незахищене шифрування пароля md5 для гостьової системи "
+"типу %s, версія %d.%d.\n"
+"Якщо це не так, скористайтеся параметром --password-crypto і створіть "
+"повідомлення щодо вади."
#: common/mlcustomize/customize_run.ml:404
msgid "passwords could not be set for this type of guest"
-msgstr ""
+msgstr "для цього типу гостьових систем не можна встановлювати паролі"
#: lib/qemuNBD.ml:125
msgid ""
@@ -2553,6 +2558,7 @@ msgstr "qemu-nbd: неочікувана версія у --version: %s"
#: common/mlcustomize/customize_run.ml:85
msgid "random seed could not be set for this type of guest"
msgstr ""
+"для цього типу гостьових систем не можна встановлювати базу випадковості"
#: input/parse_domain_from_vmx.ml:45
msgid "remote vmx %s could not be parsed as a URI"
@@ -2639,25 +2645,23 @@ msgstr ""
#: common/mlcustomize/ssh_key.ml:57
msgid "ssh-inject: $HOME environment variable is not set"
-msgstr ""
+msgstr "ssh-inject: значення змінної середовища $HOME не встановлено"
#: common/mlcustomize/ssh_key.ml:93
msgid "ssh-inject: key is an empty string"
-msgstr ""
+msgstr "ssh-inject: ключ є порожнім рядком"
#: common/mlcustomize/ssh_key.ml:66
-#, fuzzy
-#| msgid "Inject a public key into the guest"
msgid "ssh-inject: no public key file found in %s"
-msgstr "Вставити відкритий ключ до гостьової системи"
+msgstr "ssh-inject: у %s не знайдено відкритого ключа"
#: common/mlcustomize/ssh_key.ml:83
msgid "ssh-inject: public key file (%s) is empty"
-msgstr ""
+msgstr "ssh-inject: файл відкритого ключа (%s) є порожнім"
#: common/mlcustomize/ssh_key.ml:112
msgid "ssh-inject: the user %s does not exist on the guest"
-msgstr ""
+msgstr "ssh-inject: запису користувача %s у гостьовій системі не існує"
#: common/mltools/tools_utils.ml:542 common/mltools/tools_utils.ml:461
msgid "stopped by signal %d"
@@ -2673,7 +2677,7 @@ msgstr "підпроцес надіслав сигнал або зупинив
#: common/mlcustomize/customize_run.ml:307
msgid "subscription-manager credentials required for --sm-register"
-msgstr ""
+msgstr "для --sm-register потрібні реєстраційні дані subscription-manager"
#: v2v/v2v.ml:217
msgid "the --no-trim option has been removed and now does nothing"
@@ -2701,6 +2705,9 @@ msgid ""
"the command may have failed because the network is disabled. Try either "
"removing --no-network or adding --network on the command line."
msgstr ""
+"спроба виконати команду могла зазнати невдачі через те, що мережу було "
+"вимкнено. Спробуйте або вилучити «--no-network» з рядка команди, або додати "
+"«--network» до нього."
#: common/mltools/JSON_parser.ml:81
msgid "the key %s was not found in a list of objects"
@@ -2873,7 +2880,7 @@ msgstr ""
#: common/mlcustomize/customize_run.ml:349
msgid "timezone could not be set for this type of guest"
-msgstr ""
+msgstr "для цього типу гостьових систем не можна встановлювати часовий пояс"
#: input/OVA.ml:318
msgid "unable to parse line from manifest file: %S"

View File

@ -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>

View File

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

View File

@ -1,4 +1,4 @@
From 84afa8cb6933daee1585facc00557826f1fd2273 Mon Sep 17 00:00:00 2001
From 6bc7af1eaeb3442329dd2d71ca422678b77d79aa 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 e6465fbf..76067e5a 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
@@ -155,11 +155,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
@@ -531,9 +526,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
@@ -616,11 +608,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
@@ -791,10 +778,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 () =

View File

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

View File

@ -1,4 +1,4 @@
From 2039580744223840a09b8aab7ff2fbf94a563a6c Mon Sep 17 00:00:00 2001
From 628515f144017e3ac787a5daa3f76d0e3b0b47f6 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 ()

View File

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

View File

@ -1,4 +1,4 @@
From 98a14fe2f8a428ed4bba85aba3889467d48a5743 Mon Sep 17 00:00:00 2001
From edb28ecefc3f2ee2a5135dd5becfebfc9e408a2c Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Wed, 8 Mar 2017 11:03:40 +0100
Subject: [PATCH] RHEL: v2v: do not mention SUSE Xen hosts (RHBZ#1430203)

View File

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

View File

@ -1,4 +1,4 @@
From b0386851d539e414302cb646567836717fd027d9 Mon Sep 17 00:00:00 2001
From 09a597d694e6d90fe49d11ceb5faf41981af7d1f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 30 Jun 2021 11:15:52 +0100
Subject: [PATCH] RHEL: Disable -o glance
@ -98,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 76067e5a..25327366 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -435,14 +435,6 @@ See L</Networks and bridges> below.
@@ -444,14 +444,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.
@@ -1204,11 +1196,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>.
@@ -1411,13 +1398,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 6baa111f..427d35d4 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).
@@ -412,7 +409,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).
@@ -509,7 +505,6 @@ read the man page virt-v2v(1).
| `Disk -> (module Output_disk.Disk)
| `Null -> (module Output_null.Null)
| `QEmu -> (module Output_qemu.QEMU)

View File

@ -1,4 +1,4 @@
From 7cbdcc0d3acf0bc50e331ad994987c26c5917b63 Mon Sep 17 00:00:00 2001
From f2d4730d75f513c9b30bbe57a2ab1c38975d8286 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 25327366..6a0b55e1 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
@@ -1679,7 +1672,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 427d35d4..3604e396 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -219,12 +219,6 @@ let rec main () =

View File

@ -1,4 +1,4 @@
From f98822497a4a60a56cb4da2d5609d30150bdd718 Mon Sep 17 00:00:00 2001
From e07412b5de82dc27e99eae72da8b3d0b63d3d7aa 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
@ -34,7 +34,7 @@ index 53d4bb1b..14288bdc 100644
let g = open_guestfs () in
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4bfa1c7a..f38342f0 100644
index cee516c4..e4c5cdb9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -86,7 +86,6 @@ TESTS = \

View File

@ -1,4 +1,4 @@
From 28311593d57777fd4d19a9ce93b4b06502a154be Mon Sep 17 00:00:00 2001
From fa908f4ba62015ffddbae48e0e4d8c8285027f4a 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
@ -9,7 +9,7 @@ RHEL does not have btrfs so this test always fails.
1 file changed, 1 deletion(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index f38342f0..810b5b50 100644
index e4c5cdb9..fc846ee7 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -100,7 +100,6 @@ TESTS = \

View File

@ -1,4 +1,4 @@
From 9b289e8d0f03c9d98d2b950feb889cad883779ea Mon Sep 17 00:00:00 2001
From 54e64cee82ad660b6cdc286b6b83e31311049d3e 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
@ -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 6a0b55e1..b816256f 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -197,16 +197,6 @@ The options are silently ignored for other input methods.
@@ -206,16 +206,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 fc846ee7..8a710b99 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 3604e396..2fdaf40b 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).
@@ -531,7 +522,7 @@ read the man page virt-v2v(1).
(* Get the conversion options. *)
let conv_options = {

View File

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

View File

@ -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

View File

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

View File

@ -1,2 +1,2 @@
SHA512 (virt-v2v-2.5.6.tar.gz) = 86cc41042518d1ea62627c6fa0605f42dcc397e7ddc3c549bcdc3f54e3703426c14f8b42e102483afb0fad818ff569e1440042c624e9fecf3d04f14233b7a3f5
SHA512 (virt-v2v-2.5.6.tar.gz.sig) = 39d7fcdb88b1abe325b3f3c2e8bda506fb8ecf41d5adb09e7c6bcd84f881cb73a897c1556735c49e420955ae0cc79614c42930495088d8ae6a3bc0cf39ff93f9
SHA512 (virt-v2v-2.5.9.tar.gz) = 93c557439f69e1ab75ad7caf6bd42e3877aff9454f844dad99d9296bbc2caa45a319ae5688c8f184acd5702cd7e732627591db2ff39292af62a6f61bba76d597
SHA512 (virt-v2v-2.5.9.tar.gz.sig) = 2d687146ad6d6c3ab9791ac5c064f4f6cfb97209e08a081c51104bf9c3aba5cb9e00689692fd70831caa5c6405b40e5e67b8f4f92ec95200ac3d97dd4c3ce298

View File

@ -7,8 +7,8 @@
Name: virt-v2v
Epoch: 1
Version: 2.5.6
Release: 5%{?dist}
Version: 2.5.9
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,16 +25,16 @@ 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-9.6
# 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
Patch0001: 0001-convert-Display-osinfo-in-Converting-.-message.patch
Patch0002: 0002-Translated-using-Weblate-English-United-Kingdom.patch
Patch0003: 0003-Update-translation-files.patch
Patch0004: 0004-Translated-using-Weblate-Ukrainian.patch
Patch0005: 0005-Translated-using-Weblate-Ukrainian.patch
Patch0006: 0006-Translated-using-Weblate-Ukrainian.patch
Patch0007: 0007-Translated-using-Weblate-Ukrainian.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
@ -48,7 +48,6 @@ 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
%if !0%{?rhel}
# libguestfs hasn't been built on i686 for a while since there is no
@ -352,7 +351,12 @@ make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
%changelog
* Thu Aug 29 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-5
* Thu Sep 05 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.9-1
- Rebase to upstream development version 2.5.9
- Fix display of incorrect Windows 11 version
resolves: RHEL-56784
- Add customization options for post-conversion modification
resolves: RHEL-55761
- convert: windows: Ignore sriov drivers on virtio-win disk
resolves: RHEL-56383