From 9b2ebea91bdda0c37cd6a4c79cb19c676a503541 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 15 May 2024 09:06:06 +0000 Subject: [PATCH] Import from AlmaLinux stable repository --- .gitignore | 2 +- .virt-v2v.metadata | 2 +- ...btrfs-conversion-spell-out-btrfs-fea.patch | 27 - ...1-virt-v2v-i-vmx-Remove-scp-T-option.patch | 39 + ...0002-Translated-using-Weblate-Polish.patch | 48 + ...pell-out-ntfs-feature-group-dependen.patch | 78 - ...003-Translated-using-Weblate-Finnish.patch | 44 - SOURCES/0003-Update-translation-files.patch | 1604 +++ ...04-Translated-using-Weblate-Georgian.patch | 49 - ...efactor-ssh-scp-code-into-a-new-modu.patch | 301 + SOURCES/0005-Update-translation-files.patch | 9383 ----------------- ...-virt-v2v-i-vmx-Simplify-scp-wrapper.patch | 84 + ...6-Translated-using-Weblate-Ukrainian.patch | 66 - ...Add-the-input-password-to-vmx_source.patch | 125 + ...Remove-extraneous-blank-lines-in-sou.patch | 34 - ...emove-dependency-of-ssh.ml-on-Xml.ur.patch | 205 + ...Document-what-copy_qemu_ga-function-.patch | 30 - ...bdkit_ssh-Make-retry-filter-optional.patch | 55 + ...ert-windows-Remove-unused-open-Utils.patch | 25 - ...eplace-external-ssh-scp-with-nbdkit-.patch | 167 + ...ssh-Make-password-parameter-optional.patch | 255 + ...ubevirt-Fix-mistake-in-error-message.patch | 28 - ...nge-parameters-specifying-ssh-server.patch | 104 + ...bevirt-Move-cpu-element-under-domain.patch | 46 - ...graph-about-ip-passwords-and-ssh-scp.patch | 54 + ...-Error-on-invalid-output-guest-names.patch | 51 - .../0013-Split-long-lines-in-messages.patch | 1449 --- ...-nbdinfo-can-connect-instead-of-size.patch | 62 + ...hat-nbdinfo-and-nbdcopy-are-required.patch | 43 + ...lement-oo-compressed-for-qcow2-files.patch | 83 - ...orrect-qemu-binary-for-o-qemu-mode-.patch} | 4 +- SOURCES/0015-v2v-Remove-use-of-anchored.patch | 62 - ...the-qemu-boot-oo-qemu-boot-option-R.patch} | 18 +- ...-kubevirt-Replace-PCRE-anchored-with.patch | 34 - ...supported-sound-cards-to-match-RHEL.patch} | 4 +- ...rrect-xmlns-libosinfo-for-Rocky-Linu.patch | 48 - ...HEL-Fixes-for-libguestfs-winsupport.patch} | 42 +- ...equire-host-cpu-for-all-RHEL-alike-9.patch | 42 - ...k-force-VNC-as-display-RHBZ-1372671.patch} | 2 +- ...019-detect_kernels-tighten-try-scope.patch | 34 - ...mention-SUSE-Xen-hosts-RHBZ-1430203.patch} | 4 +- ...eal-with-RHEL-s-kernel-core-kernel-m.patch | 97 - ...for-supported-v2v-hypervisors-guest.patch} | 10 +- ...patch => 0022-RHEL-Disable-o-glance.patch} | 36 +- ...023-RHEL-Remove-the-in-place-option.patch} | 16 +- ...sed-Remove-nbdcopy-version-check-an.patch} | 6 +- ...0025-RHEL-9-tests-Remove-btrfs-test.patch} | 6 +- ...26-RHEL-9-Remove-block-driver-option.patch | 157 + SOURCES/copy-patches.sh | 2 +- SOURCES/virt-v2v-2.2.0.tar.gz.sig | 17 - SOURCES/virt-v2v-2.4.0.tar.gz.sig | 17 + SPECS/virt-v2v.spec | 124 +- 52 files changed, 3484 insertions(+), 11841 deletions(-) delete mode 100644 SOURCES/0001-test-v2v-fedora-btrfs-conversion-spell-out-btrfs-fea.patch create mode 100644 SOURCES/0001-virt-v2v-i-vmx-Remove-scp-T-option.patch create mode 100644 SOURCES/0002-Translated-using-Weblate-Polish.patch delete mode 100644 SOURCES/0002-test-v2v-i-ova-spell-out-ntfs-feature-group-dependen.patch delete mode 100644 SOURCES/0003-Translated-using-Weblate-Finnish.patch create mode 100644 SOURCES/0003-Update-translation-files.patch delete mode 100644 SOURCES/0004-Translated-using-Weblate-Georgian.patch create mode 100644 SOURCES/0004-virt-v2v-i-vmx-Refactor-ssh-scp-code-into-a-new-modu.patch delete mode 100644 SOURCES/0005-Update-translation-files.patch create mode 100644 SOURCES/0005-virt-v2v-i-vmx-Simplify-scp-wrapper.patch delete mode 100644 SOURCES/0006-Translated-using-Weblate-Ukrainian.patch create mode 100644 SOURCES/0006-virt-v2v-i-vmx-Add-the-input-password-to-vmx_source.patch delete mode 100644 SOURCES/0007-convert-windows-Remove-extraneous-blank-lines-in-sou.patch create mode 100644 SOURCES/0007-virt-v2v-i-vmx-Remove-dependency-of-ssh.ml-on-Xml.ur.patch delete mode 100644 SOURCES/0008-convert-windows-Document-what-copy_qemu_ga-function-.patch create mode 100644 SOURCES/0008-input-nbdkit_ssh-Make-retry-filter-optional.patch delete mode 100644 SOURCES/0009-convert-windows-Remove-unused-open-Utils.patch create mode 100644 SOURCES/0009-virt-v2v-i-vmx-Replace-external-ssh-scp-with-nbdkit-.patch create mode 100644 SOURCES/0010-input-nbdkit_ssh-Make-password-parameter-optional.patch delete mode 100644 SOURCES/0010-o-kubevirt-Fix-mistake-in-error-message.patch create mode 100644 SOURCES/0011-input-ssh-Rearrange-parameters-specifying-ssh-server.patch delete mode 100644 SOURCES/0011-o-kubevirt-Move-cpu-element-under-domain.patch create mode 100644 SOURCES/0012-docs-Remove-paragraph-about-ip-passwords-and-ssh-scp.patch delete mode 100644 SOURCES/0012-o-kubevirt-Error-on-invalid-output-guest-names.patch delete mode 100644 SOURCES/0013-Split-long-lines-in-messages.patch create mode 100644 SOURCES/0013-input-ssh-Use-nbdinfo-can-connect-instead-of-size.patch create mode 100644 SOURCES/0014-build-Document-that-nbdinfo-and-nbdcopy-are-required.patch delete mode 100644 SOURCES/0014-o-kubevirt-Implement-oo-compressed-for-qcow2-files.patch rename SOURCES/{0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch => 0015-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch} (91%) delete mode 100644 SOURCES/0015-v2v-Remove-use-of-anchored.patch rename SOURCES/{0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch => 0016-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch} (88%) delete mode 100644 SOURCES/0016-o-kubevirt-Replace-PCRE-anchored-with.patch rename SOURCES/{0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch => 0017-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch} (88%) delete mode 100644 SOURCES/0017-o-libvirt-Add-correct-xmlns-libosinfo-for-Rocky-Linu.patch rename SOURCES/{0024-RHEL-Fixes-for-libguestfs-winsupport.patch => 0018-RHEL-Fixes-for-libguestfs-winsupport.patch} (75%) delete mode 100644 SOURCES/0018-convert-linux-Require-host-cpu-for-all-RHEL-alike-9.patch rename SOURCES/{0025-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch => 0019-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch} (93%) delete mode 100644 SOURCES/0019-detect_kernels-tighten-try-scope.patch rename SOURCES/{0026-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch => 0020-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch} (87%) delete mode 100644 SOURCES/0020-detect_kernels-deal-with-RHEL-s-kernel-core-kernel-m.patch rename SOURCES/{0027-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch => 0021-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch} (92%) rename SOURCES/{0028-RHEL-Disable-o-glance.patch => 0022-RHEL-Disable-o-glance.patch} (88%) rename SOURCES/{0029-RHEL-Remove-the-in-place-option.patch => 0023-RHEL-Remove-the-in-place-option.patch} (89%) rename SOURCES/{0030-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch => 0024-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch} (93%) rename SOURCES/{0031-RHEL-9-tests-Remove-btrfs-test.patch => 0025-RHEL-9-tests-Remove-btrfs-test.patch} (83%) create mode 100644 SOURCES/0026-RHEL-9-Remove-block-driver-option.patch delete mode 100644 SOURCES/virt-v2v-2.2.0.tar.gz.sig create mode 100644 SOURCES/virt-v2v-2.4.0.tar.gz.sig diff --git a/.gitignore b/.gitignore index 2c64b31..c6f6094 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ SOURCES/libguestfs.keyring -SOURCES/virt-v2v-2.2.0.tar.gz +SOURCES/virt-v2v-2.4.0.tar.gz diff --git a/.virt-v2v.metadata b/.virt-v2v.metadata index 8f7127c..ef86ac0 100644 --- a/.virt-v2v.metadata +++ b/.virt-v2v.metadata @@ -1,2 +1,2 @@ 1bbc40f501a7fef9eef2a39b701a71aee2fea7c4 SOURCES/libguestfs.keyring -a7eff6dd19ae599850fe414b5636431d2149e5a5 SOURCES/virt-v2v-2.2.0.tar.gz +52029cc7c3f9e05ec9685995ad86955154d7b28e SOURCES/virt-v2v-2.4.0.tar.gz diff --git a/SOURCES/0001-test-v2v-fedora-btrfs-conversion-spell-out-btrfs-fea.patch b/SOURCES/0001-test-v2v-fedora-btrfs-conversion-spell-out-btrfs-fea.patch deleted file mode 100644 index 0e19524..0000000 --- a/SOURCES/0001-test-v2v-fedora-btrfs-conversion-spell-out-btrfs-fea.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 019809794742e1990af3c14b953f8c307f629b7c Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Thu, 12 Jan 2023 12:27:26 +0100 -Subject: [PATCH] test-v2v-fedora-btrfs-conversion: spell out btrfs feature - group dependency - -In case the libguestfs appliance lacks the btrfs feature group, we create -a zero-sized phony Fedora/BTRFS image variant, causing this test case to -fail. In that situation, the test should just be skipped. - -Signed-off-by: Laszlo Ersek -Acked-by: Richard W.M. Jones ---- - tests/test-v2v-fedora-btrfs-conversion.sh | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tests/test-v2v-fedora-btrfs-conversion.sh b/tests/test-v2v-fedora-btrfs-conversion.sh -index c78f8ae2..14099893 100755 ---- a/tests/test-v2v-fedora-btrfs-conversion.sh -+++ b/tests/test-v2v-fedora-btrfs-conversion.sh -@@ -27,5 +27,6 @@ set -x - skip_if_skipped - f=../test-data/phony-guests/fedora-btrfs.img - requires test -f $f -+requires test -s $f - - $VG virt-v2v --debug-gc -i disk $f -o null diff --git a/SOURCES/0001-virt-v2v-i-vmx-Remove-scp-T-option.patch b/SOURCES/0001-virt-v2v-i-vmx-Remove-scp-T-option.patch new file mode 100644 index 0000000..50b3c3e --- /dev/null +++ b/SOURCES/0001-virt-v2v-i-vmx-Remove-scp-T-option.patch @@ -0,0 +1,39 @@ +From af68f253d1a11c4abaa30ae348ee3855cdec74e9 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 11 Jan 2024 15:33:08 +0000 +Subject: [PATCH] virt-v2v: -i vmx: Remove scp -T option + +This reverts the following commit: + + commit d265639c2ab31418cfdbdedd0cc3e68cf290d834 + Author: Richard W.M. Jones + Date: Thu Jul 25 14:52:42 2019 +0100 + + v2v: -i vmx: Use scp -T option if available to unbreak scp (RHBZ#1733168). + +See also the referenced bug: +https://bugzilla.redhat.com/show_bug.cgi?id=1733168 + +My rationale for removing this option is that since we now require +OpenSSH 8.8 we must be using sftp for file transfer so we no longer +need to defeat the check for correct expansion of wildcards. That +check was only relevant for OpenSSH <= 8.7 using the old scp protocol. + +Reverts: commit d265639c2ab31418cfdbdedd0cc3e68cf290d834 +--- + input/parse_domain_from_vmx.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/input/parse_domain_from_vmx.ml b/input/parse_domain_from_vmx.ml +index 2e75e785..f24990f8 100644 +--- a/input/parse_domain_from_vmx.ml ++++ b/input/parse_domain_from_vmx.ml +@@ -68,7 +68,7 @@ let scp_from_remote_to_temporary uri tmpdir filename = + let localfile = tmpdir // filename in + + let cmd = +- sprintf "scp -T%s%s %s%s:%s %s" ++ sprintf "scp%s%s %s%s:%s %s" + (if verbose () then "" else " -q") + (match port_of_uri uri with + | None -> "" diff --git a/SOURCES/0002-Translated-using-Weblate-Polish.patch b/SOURCES/0002-Translated-using-Weblate-Polish.patch new file mode 100644 index 0000000..7d14026 --- /dev/null +++ b/SOURCES/0002-Translated-using-Weblate-Polish.patch @@ -0,0 +1,48 @@ +From 60d4a517e43f0715fb9dc4f87cbd2f5c88ab662a Mon Sep 17 00:00:00 2001 +From: Weblate Translation Memory + +Date: Mon, 15 Jan 2024 14:37:13 +0100 +Subject: [PATCH] Translated using Weblate (Polish) + +Currently translated at 7.2% (35 of 481 strings) + +Translation: libguestfs/virt-v2v-master +Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/pl/ +--- + po/pl.po | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/po/pl.po b/po/pl.po +index d4bee25f..e3a5b11d 100644 +--- a/po/pl.po ++++ b/po/pl.po +@@ -14,8 +14,9 @@ msgstr "" + "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug." + "cgi?component=libguestfs&product=Virtualization+Tools\n" + "POT-Creation-Date: 2023-11-02 11:07+0000\n" +-"PO-Revision-Date: 2023-11-26 21:01+0000\n" +-"Last-Translator: Piotr Drąg \n" ++"PO-Revision-Date: 2024-01-15 13:36+0000\n" ++"Last-Translator: Weblate Translation Memory \n" + "Language-Team: Polish \n" + "Language: pl\n" +@@ -24,7 +25,7 @@ msgstr "" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " + "|| n%100>=20) ? 1 : 2;\n" +-"X-Generator: Weblate 5.2.1\n" ++"X-Generator: Weblate 5.3.1\n" + + #: input/input_ova.ml:136 common/mltools/tools_utils.ml:235 + msgid "%s" +@@ -735,7 +736,7 @@ msgstr "" + #. common/mlcustomize/customize_cmdline.ml:245 + #: common/mlcustomize/customize_cmdline.ml:453 + msgid "PATH" +-msgstr "" ++msgstr "ŚCIEŻKA" + + #: common/mlcustomize/customize_cmdline.ml:191 + msgid "PERMISSIONS:FILE" diff --git a/SOURCES/0002-test-v2v-i-ova-spell-out-ntfs-feature-group-dependen.patch b/SOURCES/0002-test-v2v-i-ova-spell-out-ntfs-feature-group-dependen.patch deleted file mode 100644 index bb45b56..0000000 --- a/SOURCES/0002-test-v2v-i-ova-spell-out-ntfs-feature-group-dependen.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 224243b8e26aa299bd99dd24662c4df10a3f612c Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Thu, 12 Jan 2023 12:31:10 +0100 -Subject: [PATCH] test-v2v-i-ova: spell out ntfs feature group dependency - -"windows.img" is created as an empty phony image if the libguestfs -appliance lacks the ntfs feature group. - -"tests/Makefile.am" deals well with this, because for the "central" -"windows.vmdk" target, we restrict the VMDK conversion to a non-empty -"windows.img". Subsequently, dependent test cases check for "windows.vmdk" -specifically, and if that file is missing, the tests are skipped (they -exit with code 77). - -"test-v2v-i-ova.sh" and "test-v2v-i-ova-directory.sh" are exceptions -however. They perform the same conversion manually (in their own separate -workspace directories). They assume that, if "windows.img" exists, it can -be converted to VMDK. When the image size is zero, the conversion breaks, -and both test cases fail. Skip both tests if "windows.img" is empty. - -Signed-off-by: Laszlo Ersek -Acked-by: Richard W.M. Jones -[lersek@redhat.com: replace further occurrences of windows.img with $f] ---- - tests/test-v2v-i-ova-directory.sh | 7 ++++--- - tests/test-v2v-i-ova.sh | 7 ++++--- - 2 files changed, 8 insertions(+), 6 deletions(-) - -diff --git a/tests/test-v2v-i-ova-directory.sh b/tests/test-v2v-i-ova-directory.sh -index fff236f5..ec858464 100755 ---- a/tests/test-v2v-i-ova-directory.sh -+++ b/tests/test-v2v-i-ova-directory.sh -@@ -25,7 +25,9 @@ set -e - set -x - - skip_if_skipped --requires test -f ../test-data/phony-guests/windows.img -+f=../test-data/phony-guests/windows.img -+requires test -f $f -+requires test -s $f - - export VIRT_TOOLS_DATA_DIR="$srcdir/../test-data/fake-virt-tools" - export VIRTIO_WIN="$srcdir/../test-data/fake-virtio-win" -@@ -39,8 +41,7 @@ vmdk=test-ova.vmdk - ovf=test-v2v-i-ova.ovf - mf=test-ova.mf - --qemu-img convert ../test-data/phony-guests/windows.img \ -- -O vmdk $d/$vmdk -+qemu-img convert $f -O vmdk $d/$vmdk - cp "$srcdir/$ovf" $d/$ovf - sha1=`do_sha1 $d/$ovf` - echo "SHA1($ovf)= $sha1" > $d/$mf -diff --git a/tests/test-v2v-i-ova.sh b/tests/test-v2v-i-ova.sh -index a55966a7..7d988330 100755 ---- a/tests/test-v2v-i-ova.sh -+++ b/tests/test-v2v-i-ova.sh -@@ -25,7 +25,9 @@ set -e - set -x - - skip_if_skipped --requires test -f ../test-data/phony-guests/windows.img -+f=../test-data/phony-guests/windows.img -+requires test -f $f -+requires test -s $f - - export VIRT_TOOLS_DATA_DIR="$srcdir/../test-data/fake-virt-tools" - export VIRTIO_WIN="$srcdir/../test-data/fake-virtio-win" -@@ -41,8 +43,7 @@ mf=test-ova.mf - ova=test-ova.ova - raw=TestOva-sda - --qemu-img convert ../test-data/phony-guests/windows.img \ -- -O vmdk $d/$vmdk -+qemu-img convert $f -O vmdk $d/$vmdk - cp "$srcdir/$ovf" $d/$ovf - sha1=`do_sha1 $d/$ovf` - echo "SHA1($ovf)= $sha1" > $d/$mf diff --git a/SOURCES/0003-Translated-using-Weblate-Finnish.patch b/SOURCES/0003-Translated-using-Weblate-Finnish.patch deleted file mode 100644 index 3533968..0000000 --- a/SOURCES/0003-Translated-using-Weblate-Finnish.patch +++ /dev/null @@ -1,44 +0,0 @@ -From d78c3bdcda04885ee7b826a5ce43d07e778641cd Mon Sep 17 00:00:00 2001 -From: Jan Kuparinen -Date: Fri, 13 Jan 2023 21:20:28 +0100 -Subject: [PATCH] Translated using Weblate (Finnish) - -Currently translated at 1.9% (25 of 1305 strings) - -Translation: libguestfs/virt-v2v-docs-master -Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-docs-master/fi/ ---- - po-docs/fi.po | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/po-docs/fi.po b/po-docs/fi.po -index 29d8ee26..5da30f77 100644 ---- a/po-docs/fi.po -+++ b/po-docs/fi.po -@@ -8,7 +8,7 @@ msgstr "" - "Project-Id-Version: virt-v2v 1.43.1\n" - "Report-Msgid-Bugs-To: libguestfs@redhat.com\n" - "POT-Creation-Date: 2020-08-13 13:17+0200\n" --"PO-Revision-Date: 2022-01-25 17:16+0000\n" -+"PO-Revision-Date: 2023-01-13 20:20+0000\n" - "Last-Translator: Jan Kuparinen \n" - "Language-Team: Finnish \n" -@@ -17,7 +17,7 @@ msgstr "" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=2; plural=n != 1;\n" --"X-Generator: Weblate 4.10.1\n" -+"X-Generator: Weblate 4.15\n" - - #. type: =end - #: common/mlcustomize/customize-options.pod:1 -@@ -4694,7 +4694,7 @@ msgstr "" - #. type: =item - #: docs/virt-v2v-support.pod:86 - msgid "Oracle Linux" --msgstr "" -+msgstr "Oracle Linux" - - #. type: =item - #: docs/virt-v2v-support.pod:88 diff --git a/SOURCES/0003-Update-translation-files.patch b/SOURCES/0003-Update-translation-files.patch new file mode 100644 index 0000000..f9efbff --- /dev/null +++ b/SOURCES/0003-Update-translation-files.patch @@ -0,0 +1,1604 @@ +From 2d227fc060f51cd9b4cdc7713245138c6ed043ae Mon Sep 17 00:00:00 2001 +From: Weblate +Date: Mon, 15 Jan 2024 14:37:14 +0100 +Subject: [PATCH] Update translation files + +Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. + +Translation: libguestfs/virt-v2v-master +Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/ +--- + po/cs.po | 24 ++++++++++++------------ + po/de.po | 24 ++++++++++++------------ + po/es.po | 24 ++++++++++++------------ + po/fi.po | 24 ++++++++++++------------ + po/fr.po | 24 ++++++++++++------------ + po/gu.po | 24 ++++++++++++------------ + po/hi.po | 24 ++++++++++++------------ + po/ja.po | 24 ++++++++++++------------ + po/ka.po | 28 ++++++++++++++-------------- + po/kn.po | 24 ++++++++++++------------ + po/ml.po | 24 ++++++++++++------------ + po/mr.po | 24 ++++++++++++------------ + po/nl.po | 24 ++++++++++++------------ + po/or.po | 24 ++++++++++++------------ + po/pa.po | 24 ++++++++++++------------ + po/pl.po | 28 ++++++++++++++-------------- + po/si.po | 24 ++++++++++++------------ + po/uk.po | 24 ++++++++++++------------ + 18 files changed, 220 insertions(+), 220 deletions(-) + +diff --git a/po/cs.po b/po/cs.po +index aeb55d57..415a9b9b 100644 +--- a/po/cs.po ++++ b/po/cs.po +@@ -4,7 +4,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2023-04-08 18:20+0000\n" + "Last-Translator: Pavel Borecki \n" + "Language-Team: Czech \n" + "Language-Team: German (http://www.transifex.com/projects/p/libguestfs/" +@@ -1899,32 +1899,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2248,11 +2248,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2390,17 +2390,17 @@ msgstr "Betriebssystem: %s\n" + msgid "%s mounted on %s\n" + msgstr "%s eingehängt auf %s\n" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "Schlüssel oder Passphrase eingeben („%s“): " + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, c-format + msgid "could not read key from user" + msgstr "" +diff --git a/po/es.po b/po/es.po +index 2929430d..065cd2b7 100644 +--- a/po/es.po ++++ b/po/es.po +@@ -12,7 +12,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2015-03-16 07:04+0000\n" + "Last-Translator: Alex Puchades \n" + "Language-Team: Spanish (http://www.transifex.com/projects/p/libguestfs/" +@@ -1890,32 +1890,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2233,11 +2233,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2377,17 +2377,17 @@ msgstr "Sistema operativo: %s\n" + msgid "%s mounted on %s\n" + msgstr "%s montado en %s\n" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "Ingrese la llave o la frase de acceso (\"%s\"): " + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, fuzzy, c-format + #| msgid "could not parse boot size" + msgid "could not read key from user" +diff --git a/po/fi.po b/po/fi.po +index 3c382984..787abc74 100644 +--- a/po/fi.po ++++ b/po/fi.po +@@ -8,7 +8,7 @@ msgstr "" + "Project-Id-Version: virt-v2v 1.43.4\n" + "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" + "component=libguestfs&product=Virtualization+Tools\n" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2022-12-23 18:20+0000\n" + "Last-Translator: Jan Kuparinen \n" + "Language-Team: Finnish \n" + "Language-Team: French \n" + "Language-Team: Gujarati (http://www.transifex.com/projects/p/libguestfs/" +@@ -1888,32 +1888,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2231,11 +2231,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2373,17 +2373,17 @@ msgstr "ઓપરેટીંગ સિસ્ટમ: %s\n" + msgid "%s mounted on %s\n" + msgstr "" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "કી અથવા પાસફ્રેઝને દાખલ કરો (\"%s\"): " + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, fuzzy, c-format + #| msgid "could not parse boot size" + msgid "could not read key from user" +diff --git a/po/hi.po b/po/hi.po +index 6e2116e5..11f334ce 100644 +--- a/po/hi.po ++++ b/po/hi.po +@@ -10,7 +10,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2015-02-21 10:49+0000\n" + "Last-Translator: Copied by Zanata \n" + "Language-Team: Hindi (http://www.transifex.com/projects/p/libguestfs/" +@@ -1886,32 +1886,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2229,11 +2229,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2371,17 +2371,17 @@ msgstr "" + msgid "%s mounted on %s\n" + msgstr "" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "" + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, c-format + msgid "could not read key from user" + msgstr "" +diff --git a/po/ja.po b/po/ja.po +index 30cb89c2..7c806c19 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -11,7 +11,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2017-02-24 07:33+0000\n" + "Last-Translator: Copied by Zanata \n" + "Language-Team: Japanese (http://www.transifex.com/projects/p/libguestfs/" +@@ -1897,32 +1897,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2244,11 +2244,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2387,17 +2387,17 @@ msgstr "オペレーティングシステム: %s\n" + msgid "%s mounted on %s\n" + msgstr "%s を %s にマウントしました\n" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "キーかパスフレーズを入力してください。(\"%s\"): " + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, fuzzy, c-format + #| msgid "could not parse boot size" + msgid "could not read key from user" +diff --git a/po/ka.po b/po/ka.po +index 53881487..42ce7c68 100644 +--- a/po/ka.po ++++ b/po/ka.po +@@ -6,9 +6,9 @@ + msgid "" + msgstr "" + "Project-Id-Version: virt-v2v 2.1.1\n" +-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug." +-"cgi?component=libguestfs&product=Virtualization+Tools\n" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" ++"component=libguestfs&product=Virtualization+Tools\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2023-11-26 21:01+0000\n" + "Last-Translator: Temuri Doghonadze \n" + "Language-Team: Georgian \n" + "Language-Team: Kannada (http://www.transifex.com/projects/p/libguestfs/" +@@ -1885,32 +1885,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2226,11 +2226,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2368,17 +2368,17 @@ msgstr "" + msgid "%s mounted on %s\n" + msgstr "" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "" + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, c-format + msgid "could not read key from user" + msgstr "" +diff --git a/po/ml.po b/po/ml.po +index e1a7db7c..172994fb 100644 +--- a/po/ml.po ++++ b/po/ml.po +@@ -9,7 +9,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2015-02-21 10:50+0000\n" + "Last-Translator: Copied by Zanata \n" + "Language-Team: Malayalam (http://www.transifex.com/projects/p/libguestfs/" +@@ -1885,32 +1885,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2228,11 +2228,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2370,17 +2370,17 @@ msgstr "" + msgid "%s mounted on %s\n" + msgstr "" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "" + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, c-format + msgid "could not read key from user" + msgstr "" +diff --git a/po/mr.po b/po/mr.po +index a9bde2b0..cfa072d6 100644 +--- a/po/mr.po ++++ b/po/mr.po +@@ -10,7 +10,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2015-02-21 10:51+0000\n" + "Last-Translator: Copied by Zanata \n" + "Language-Team: Marathi (http://www.transifex.com/projects/p/libguestfs/" +@@ -1888,32 +1888,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2231,11 +2231,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2373,17 +2373,17 @@ msgstr "कार्यप्रणाली: %s\n" + msgid "%s mounted on %s\n" + msgstr "%s ला %s वर माऊंट केले\n" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "कि किंवा पासफ्रेज द्या (\"%s\"): " + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, fuzzy, c-format + #| msgid "could not parse boot size" + msgid "could not read key from user" +diff --git a/po/nl.po b/po/nl.po +index 4f2f0e1f..7757ba38 100644 +--- a/po/nl.po ++++ b/po/nl.po +@@ -11,7 +11,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2015-02-21 10:51+0000\n" + "Last-Translator: Copied by Zanata \n" + "Language-Team: Dutch (http://www.transifex.com/projects/p/libguestfs/" +@@ -1893,32 +1893,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2236,11 +2236,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2379,17 +2379,17 @@ msgstr "Besturingssysteem: %s\n" + msgid "%s mounted on %s\n" + msgstr "%s aangekoppeld op %s\n" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "Vul sleutel of wachtzin in (\"%s\"): " + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, fuzzy, c-format + #| msgid "could not parse boot size" + msgid "could not read key from user" +diff --git a/po/or.po b/po/or.po +index 532d60ff..cb0b6f9a 100644 +--- a/po/or.po ++++ b/po/or.po +@@ -9,7 +9,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2015-02-21 10:51+0000\n" + "Last-Translator: Copied by Zanata \n" + "Language-Team: Oriya (http://www.transifex.com/projects/p/libguestfs/" +@@ -1885,32 +1885,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2228,11 +2228,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2370,17 +2370,17 @@ msgstr "" + msgid "%s mounted on %s\n" + msgstr "" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "" + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, c-format + msgid "could not read key from user" + msgstr "" +diff --git a/po/pa.po b/po/pa.po +index 4b5fe247..9b4e9bca 100644 +--- a/po/pa.po ++++ b/po/pa.po +@@ -10,7 +10,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2015-02-21 10:52+0000\n" + "Last-Translator: Copied by Zanata \n" + "Language-Team: Panjabi (Punjabi) (http://www.transifex.com/projects/p/" +@@ -1888,32 +1888,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2231,11 +2231,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2373,17 +2373,17 @@ msgstr "ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ: %s\n" + msgid "%s mounted on %s\n" + msgstr "%s ਨੂੰ %s ਉੱਪਰ ਮਾਊਂਟ ਕੀਤਾ ਗਿਆ ਹੈ\n" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "ਕੁੰਜੀ ਜਾਂ ਗੁਪਤਕੋਡ ਦਿਓ (\"%s\"): " + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, fuzzy, c-format + #| msgid "could not parse boot size" + msgid "could not read key from user" +diff --git a/po/pl.po b/po/pl.po +index e3a5b11d..bb8acef7 100644 +--- a/po/pl.po ++++ b/po/pl.po +@@ -11,9 +11,9 @@ + 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" ++"component=libguestfs&product=Virtualization+Tools\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2024-01-15 13:36+0000\n" + "Last-Translator: Weblate Translation Memory \n" +@@ -1895,32 +1895,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2240,11 +2240,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2382,17 +2382,17 @@ msgstr "System operacyjny: %s\n" + msgid "%s mounted on %s\n" + msgstr "%s zamontowano w %s\n" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "Proszę podać klucz lub hasło („%s”): " + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, c-format + msgid "could not read key from user" + msgstr "nie można odczytać klucza od użytkownika" +diff --git a/po/si.po b/po/si.po +index 0b40cead..62d45590 100644 +--- a/po/si.po ++++ b/po/si.po +@@ -8,7 +8,7 @@ msgstr "" + "Project-Id-Version: virt-v2v 1.43.3\n" + "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" + "component=libguestfs&product=Virtualization+Tools\n" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: Automatically generated\n" + "Language-Team: none\n" +@@ -1882,32 +1882,32 @@ msgid "" + "broken in some way. Please report this as a bug with a full debug log." + msgstr "" + +-#: common/mltools/tools_utils.ml:417 common/options/keys.c:258 ++#: common/mltools/tools_utils.ml:417 common/options/keys.c:263 + #, c-format + msgid "selector '%s': invalid TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:409 common/options/keys.c:248 ++#: common/mltools/tools_utils.ml:409 common/options/keys.c:253 + #, c-format + msgid "selector '%s': missing FILENAME, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:399 common/options/keys.c:226 ++#: common/mltools/tools_utils.ml:399 common/options/keys.c:231 + #, c-format + msgid "selector '%s': missing ID" + msgstr "" + +-#: common/mltools/tools_utils.ml:404 common/options/keys.c:239 ++#: common/mltools/tools_utils.ml:404 common/options/keys.c:244 + #, c-format + msgid "selector '%s': missing KEY_STRING, or too many fields" + msgstr "" + +-#: common/mltools/tools_utils.ml:401 common/options/keys.c:233 ++#: common/mltools/tools_utils.ml:401 common/options/keys.c:238 + #, c-format + msgid "selector '%s': missing TYPE" + msgstr "" + +-#: common/mltools/tools_utils.ml:413 common/options/keys.c:256 ++#: common/mltools/tools_utils.ml:413 common/options/keys.c:261 + #, c-format + msgid "selector '%s': too many fields" + msgstr "" +@@ -2225,11 +2225,11 @@ msgstr "" + msgid "vmx URI start with ‘ssh://...’" + msgstr "" + +-#: input/parse_vmx.ml:302 ++#: input/parse_vmx.ml:313 + msgid "vmx parser: cannot parse this line, ignoring: %s" + msgstr "" + +-#: input/parse_vmx.ml:335 ++#: input/parse_vmx.ml:346 + msgid "vmx parser: duplicate key '%s' ignored" + msgstr "" + +@@ -2367,17 +2367,17 @@ msgstr "" + msgid "%s mounted on %s\n" + msgstr "" + +-#: common/options/keys.c:62 ++#: common/options/keys.c:63 + #, c-format + msgid "Enter key or passphrase (\"%s\"): " + msgstr "" + +-#: common/options/keys.c:144 ++#: common/options/keys.c:145 + #, c-format + msgid "size_t overflow" + msgstr "" + +-#: common/options/keys.c:187 ++#: common/options/keys.c:192 + #, c-format + msgid "could not read key from user" + msgstr "" +diff --git a/po/uk.po b/po/uk.po +index 62b6766d..5a802677 100644 +--- a/po/uk.po ++++ b/po/uk.po +@@ -14,7 +14,7 @@ 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" +-"POT-Creation-Date: 2023-11-02 11:07+0000\n" ++"POT-Creation-Date: 2024-01-04 17:06+0000\n" + "PO-Revision-Date: 2023-06-05 07:20+0000\n" + "Last-Translator: Yuri Chornoivan \n" + "Language-Team: Ukrainian -Date: Fri, 13 Jan 2023 21:20:28 +0100 -Subject: [PATCH] Translated using Weblate (Georgian) - -Currently translated at 8.6% (38 of 439 strings) - -Translation: libguestfs/virt-v2v-master -Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/ka/ ---- - po/ka.po | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/po/ka.po b/po/ka.po -index 4dc891df..26d41f6b 100644 ---- a/po/ka.po -+++ b/po/ka.po -@@ -6,10 +6,10 @@ - msgid "" - msgstr "" - "Project-Id-Version: virt-v2v 2.1.1\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: 2022-12-10 12:01+0000\n" --"PO-Revision-Date: 2022-12-06 18:19+0000\n" -+"PO-Revision-Date: 2023-01-13 20:20+0000\n" - "Last-Translator: Temuri Doghonadze \n" - "Language-Team: Georgian \n" -@@ -18,7 +18,7 @@ msgstr "" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=2; plural=n != 1;\n" --"X-Generator: Weblate 4.14.2\n" -+"X-Generator: Weblate 4.15\n" - - #: input/input_ova.ml:134 common/mltools/tools_utils.ml:235 - msgid "%s" -@@ -2062,7 +2062,7 @@ msgstr "" - #: common/mltools/getopt-c.c:198 - #, c-format - msgid "%s: %s: integer out of range\n" --msgstr "" -+msgstr "%s: %s: მთელი მნიშვნელობა დიაპაზონს გარეთაა\n" - - #: common/mltools/getopt-c.c:388 - #, c-format diff --git a/SOURCES/0004-virt-v2v-i-vmx-Refactor-ssh-scp-code-into-a-new-modu.patch b/SOURCES/0004-virt-v2v-i-vmx-Refactor-ssh-scp-code-into-a-new-modu.patch new file mode 100644 index 0000000..6a5cd52 --- /dev/null +++ b/SOURCES/0004-virt-v2v-i-vmx-Refactor-ssh-scp-code-into-a-new-modu.patch @@ -0,0 +1,301 @@ +From cddd07669d18a5a848f82dbde27b84ef405ef9fa Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 15 Jan 2024 14:24:35 +0000 +Subject: [PATCH] virt-v2v: -i vmx: Refactor ssh/scp code into a new module + +This is a straight refactor of the existing code that handles ssh/scp +into a new module. In this commit I just copy the code around without +doing any cleanup; cleanup will follow in subsequent commits. + +Reviewed-by: Laszlo Ersek +--- + input/Makefile.am | 6 ++- + input/input_vmx.ml | 8 ++-- + input/parse_domain_from_vmx.ml | 60 ++----------------------- + input/parse_domain_from_vmx.mli | 6 --- + input/ssh.ml | 78 +++++++++++++++++++++++++++++++++ + input/ssh.mli | 34 ++++++++++++++ + 6 files changed, 123 insertions(+), 69 deletions(-) + create mode 100644 input/ssh.ml + create mode 100644 input/ssh.mli + +diff --git a/input/Makefile.am b/input/Makefile.am +index de016d60..4153f878 100644 +--- a/input/Makefile.am ++++ b/input/Makefile.am +@@ -39,6 +39,7 @@ SOURCES_MLI = \ + parse_domain_from_vmx.mli \ + parse_libvirt_xml.mli \ + parse_vmx.mli \ ++ ssh.mli \ + vCenter.mli + + SOURCES_ML = \ +@@ -46,11 +47,12 @@ SOURCES_ML = \ + parse_libvirt_xml.ml \ + OVF.ml \ + OVA.ml \ +- parse_vmx.ml \ +- parse_domain_from_vmx.ml \ + nbdkit_curl.ml \ + nbdkit_ssh.ml \ + nbdkit_vddk.ml \ ++ ssh.ml \ ++ parse_vmx.ml \ ++ parse_domain_from_vmx.ml \ + vCenter.ml \ + input.ml \ + input_disk.ml \ +diff --git a/input/input_vmx.ml b/input/input_vmx.ml +index eed8a433..bd20420c 100644 +--- a/input/input_vmx.ml ++++ b/input/input_vmx.ml +@@ -79,21 +79,21 @@ module VMX = struct + let socket = sprintf "%s/in%d" dir i in + On_exit.unlink socket; + +- let vmx_path = path_of_uri uri in ++ let vmx_path = Ssh.path_of_uri uri in + let abs_path = absolute_path_from_other_file vmx_path filename in + let flat_vmdk = PCRE.replace (PCRE.compile "\\.vmdk$") + "-flat.vmdk" abs_path in + + (* RHBZ#1774386 *) +- if not (remote_file_exists uri flat_vmdk) then ++ if not (Ssh.remote_file_exists uri flat_vmdk) then + error (f_"This transport does not support guests with snapshots. \ + Either collapse the snapshots for this guest and try \ + the conversion again, or use one of the alternate \ + conversion methods described in \ + virt-v2v-input-vmware(1) section \"NOTES\"."); + +- let server = server_of_uri uri in +- let port = Option.map string_of_int (port_of_uri uri) in ++ let server = Ssh.server_of_uri uri in ++ let port = Option.map string_of_int (Ssh.port_of_uri uri) in + let user = uri.Xml.uri_user in + let password = + match options.input_password with +diff --git a/input/parse_domain_from_vmx.ml b/input/parse_domain_from_vmx.ml +index f24990f8..8cf5893c 100644 +--- a/input/parse_domain_from_vmx.ml ++++ b/input/parse_domain_from_vmx.ml +@@ -51,61 +51,6 @@ let vmx_source_of_arg input_transport arg = + error (f_"vmx URI path component looks incorrect"); + SSH uri + +-(* Return various fields from the URI. The checks in vmx_source_of_arg +- * should ensure that none of these assertions fail. +- *) +-let port_of_uri { Xml.uri_port } = +- match uri_port with i when i <= 0 -> None | i -> Some i +-let server_of_uri { Xml.uri_server } = +- match uri_server with None -> assert false | Some s -> s +-let path_of_uri { Xml.uri_path } = +- match uri_path with None -> assert false | Some p -> p +- +-(* 'scp' a remote file into a temporary local file, returning the path +- * of the temporary local file. +- *) +-let scp_from_remote_to_temporary uri tmpdir filename = +- let localfile = tmpdir // filename in +- +- let cmd = +- sprintf "scp%s%s %s%s:%s %s" +- (if verbose () then "" else " -q") +- (match port_of_uri uri with +- | None -> "" +- | Some port -> sprintf " -P %d" port) +- (match uri.Xml.uri_user with +- | None -> "" +- | Some user -> quote user ^ "@") +- (quote (server_of_uri uri)) +- (quote (path_of_uri uri)) +- (quote localfile) in +- if verbose () then +- eprintf "%s\n%!" cmd; +- if Sys.command cmd <> 0 then +- error (f_"could not copy the VMX file from the remote server, \ +- see earlier error messages"); +- localfile +- +-(* Test if [path] exists on the remote server. *) +-let remote_file_exists uri path = +- let cmd = +- sprintf "ssh%s %s%s test -f %s" +- (match port_of_uri uri with +- | None -> "" +- | Some port -> sprintf " -p %d" port) +- (match uri.Xml.uri_user with +- | None -> "" +- | Some user -> quote user ^ "@") +- (quote (server_of_uri uri)) +- (* Double quoting is necessary for 'ssh', first to protect +- * from the local shell, second to protect from the remote +- * shell. https://github.com/libguestfs/virt-v2v/issues/35#issuecomment-1741730963 +- *) +- (quote (quote path)) in +- if verbose () then +- eprintf "%s\n%!" cmd; +- Sys.command cmd = 0 +- + let rec find_disks vmx vmx_source = + (* Set the s_disk_id field to an incrementing number. *) + List.mapi +@@ -390,7 +335,8 @@ let parse_domain_from_vmx vmx_source = + match vmx_source with + | File filename -> Parse_vmx.parse_file filename + | SSH uri -> +- let filename = scp_from_remote_to_temporary uri tmpdir "source.vmx" in ++ let filename = Ssh.scp_from_remote_to_temporary uri tmpdir ++ "source.vmx" in + Parse_vmx.parse_file filename in + + let name = +@@ -400,7 +346,7 @@ let parse_domain_from_vmx vmx_source = + warning (f_"no displayName key found in VMX file"); + match vmx_source with + | File filename -> name_from_disk filename +- | SSH uri -> name_from_disk (path_of_uri uri) in ++ | SSH uri -> name_from_disk (Ssh.path_of_uri uri) in + + let genid = + (* See: https://lists.nongnu.org/archive/html/qemu-devel/2018-07/msg02019.html *) +diff --git a/input/parse_domain_from_vmx.mli b/input/parse_domain_from_vmx.mli +index e354b32e..42f8100e 100644 +--- a/input/parse_domain_from_vmx.mli ++++ b/input/parse_domain_from_vmx.mli +@@ -22,9 +22,3 @@ type vmx_source = + + val vmx_source_of_arg : [`SSH] option -> string -> vmx_source + val parse_domain_from_vmx : vmx_source -> Types.source * string list +- +-(* XXX Exporting these is a hack. *) +-val path_of_uri : Xml.uri -> string +-val server_of_uri : Xml.uri -> string +-val port_of_uri : Xml.uri -> int option +-val remote_file_exists : Xml.uri -> string -> bool +diff --git a/input/ssh.ml b/input/ssh.ml +new file mode 100644 +index 00000000..5e689d29 +--- /dev/null ++++ b/input/ssh.ml +@@ -0,0 +1,78 @@ ++(* virt-v2v ++ * Copyright (C) 2009-2024 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 Std_utils ++open Tools_utils ++open Common_gettext.Gettext ++ ++open Printf ++ ++(* Return various fields from the URI. The checks in vmx_source_of_arg ++ * should ensure that none of these assertions fail. ++ *) ++let port_of_uri { Xml.uri_port } = ++ match uri_port with i when i <= 0 -> None | i -> Some i ++let server_of_uri { Xml.uri_server } = ++ match uri_server with None -> assert false | Some s -> s ++let path_of_uri { Xml.uri_path } = ++ match uri_path with None -> assert false | Some p -> p ++ ++(* 'scp' a remote file into a temporary local file, returning the path ++ * of the temporary local file. ++ *) ++let scp_from_remote_to_temporary uri tmpdir filename = ++ let localfile = tmpdir // filename in ++ ++ let cmd = ++ sprintf "scp%s%s %s%s:%s %s" ++ (if verbose () then "" else " -q") ++ (match port_of_uri uri with ++ | None -> "" ++ | Some port -> sprintf " -P %d" port) ++ (match uri.Xml.uri_user with ++ | None -> "" ++ | Some user -> quote user ^ "@") ++ (quote (server_of_uri uri)) ++ (quote (path_of_uri uri)) ++ (quote localfile) in ++ if verbose () then ++ eprintf "%s\n%!" cmd; ++ if Sys.command cmd <> 0 then ++ error (f_"could not copy the VMX file from the remote server, \ ++ see earlier error messages"); ++ localfile ++ ++(* Test if [path] exists on the remote server. *) ++let remote_file_exists uri path = ++ let cmd = ++ sprintf "ssh%s %s%s test -f %s" ++ (match port_of_uri uri with ++ | None -> "" ++ | Some port -> sprintf " -p %d" port) ++ (match uri.Xml.uri_user with ++ | None -> "" ++ | Some user -> quote user ^ "@") ++ (quote (server_of_uri uri)) ++ (* Double quoting is necessary for 'ssh', first to protect ++ * from the local shell, second to protect from the remote ++ * shell. https://github.com/libguestfs/virt-v2v/issues/35#issuecomment-1741730963 ++ *) ++ (quote (quote path)) in ++ if verbose () then ++ eprintf "%s\n%!" cmd; ++ Sys.command cmd = 0 +diff --git a/input/ssh.mli b/input/ssh.mli +new file mode 100644 +index 00000000..e9a1a6a8 +--- /dev/null ++++ b/input/ssh.mli +@@ -0,0 +1,34 @@ ++(* virt-v2v ++ * Copyright (C) 2009-2024 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. ++ *) ++ ++(** Wrappers for finding and downloading remote files over ssh. *) ++ ++val path_of_uri : Xml.uri -> string ++val server_of_uri : Xml.uri -> string ++val port_of_uri : Xml.uri -> int option ++ ++(** [remote_file_exists ssh_uri path] checks that [path] exists ++ on the remote server [ssh_uri] (note any path inside [ssh_uri] ++ is ignored). *) ++val remote_file_exists : Xml.uri -> string -> bool ++ ++(** [scp_from_remote_to_temporary ssh_uri tmpdir filename] ++ uses scp to copy the single remote file at [ssh_uri] to ++ the local file called [tmpdir/filename]. It returns the ++ final path [tmpdir/filename]. *) ++val scp_from_remote_to_temporary : Xml.uri -> string -> string -> string diff --git a/SOURCES/0005-Update-translation-files.patch b/SOURCES/0005-Update-translation-files.patch deleted file mode 100644 index 957d5d3..0000000 --- a/SOURCES/0005-Update-translation-files.patch +++ /dev/null @@ -1,9383 +0,0 @@ -From f201d3c6b906b44b6483b6bb5bec47df6074974c Mon Sep 17 00:00:00 2001 -From: Weblate -Date: Fri, 13 Jan 2023 21:20:28 +0100 -Subject: [PATCH] Update translation files - -Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. - -Translation: libguestfs/virt-v2v-master -Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/ ---- - po/cs.po | 152 ++++++++++++++++++++++++++++----------------------- - po/de.po | 152 ++++++++++++++++++++++++++++----------------------- - po/es.po | 152 ++++++++++++++++++++++++++++----------------------- - po/fi.po | 152 ++++++++++++++++++++++++++++----------------------- - po/fr.po | 152 ++++++++++++++++++++++++++++----------------------- - po/gu.po | 152 ++++++++++++++++++++++++++++----------------------- - po/hi.po | 152 ++++++++++++++++++++++++++++----------------------- - po/ja.po | 152 ++++++++++++++++++++++++++++----------------------- - po/ka.po | 156 ++++++++++++++++++++++++++++------------------------ - po/kn.po | 152 ++++++++++++++++++++++++++++----------------------- - po/ml.po | 152 ++++++++++++++++++++++++++++----------------------- - po/mr.po | 152 ++++++++++++++++++++++++++++----------------------- - po/nl.po | 152 ++++++++++++++++++++++++++++----------------------- - po/or.po | 152 ++++++++++++++++++++++++++++----------------------- - po/pa.po | 152 ++++++++++++++++++++++++++++----------------------- - po/pl.po | 152 ++++++++++++++++++++++++++++----------------------- - po/si.po | 152 ++++++++++++++++++++++++++++----------------------- - po/uk.po | 164 +++++++++++++++++++++++++++++++------------------------ - 18 files changed, 1522 insertions(+), 1230 deletions(-) - -diff --git a/po/cs.po b/po/cs.po -index 5cfc585a..8bd4c717 100644 ---- a/po/cs.po -+++ b/po/cs.po -@@ -4,7 +4,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2022-04-15 20:17+0000\n" - "Last-Translator: Pavel Borecki \n" - "Language-Team: Czech = 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -383,7 +389,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -395,7 +401,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -407,7 +413,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -419,7 +425,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -497,7 +503,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -505,7 +511,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -517,7 +523,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -525,7 +531,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -552,7 +558,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -560,7 +566,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -568,15 +574,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -593,7 +599,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -608,7 +616,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -684,11 +692,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -712,7 +720,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -753,63 +761,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -821,39 +829,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -885,15 +893,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -909,7 +917,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -926,7 +934,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -973,15 +981,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -993,6 +1001,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1119,7 +1133,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1327,7 +1341,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1453,7 +1467,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1589,7 +1603,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1609,13 +1625,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1754,11 +1770,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1822,7 +1838,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1847,14 +1863,14 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - msgstr[2] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1889,7 +1905,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1901,7 +1917,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1909,11 +1925,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/de.po b/po/de.po -index a17028f9..900141c4 100644 ---- a/po/de.po -+++ b/po/de.po -@@ -11,7 +11,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:48+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: German (http://www.transifex.com/projects/p/libguestfs/" -@@ -79,7 +79,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -238,6 +238,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -340,7 +344,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -392,7 +398,7 @@ msgstr "Zeile(n) an die Datei anhängen" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -404,7 +410,7 @@ msgstr "Berechtigungen einer Datei ändern" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "Ausgabedatei komprimieren (nur -of qcow2)" - -@@ -416,7 +422,7 @@ msgstr "Dateien in Festplattenabbild kopieren" - msgid "Copy local files or directories into image" - msgstr "Lokale Dateien oder Verzeichnisse in das Abbild kopieren" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "Festplatte %d/%d wird kopiert" - -@@ -428,7 +434,7 @@ msgstr "Ein Verzeichnis erstellen" - msgid "Create symbolic links" - msgstr "Symbolische Verknüpfungen erstellen" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "Ausgabe-Metadaten erstellen" - -@@ -506,7 +512,7 @@ msgstr "DATEI:ZEILE" - msgid "FILENAME" - msgstr "DATEINAME" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -514,7 +520,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "HOSTNAME" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -526,7 +532,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -534,7 +540,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - #, fuzzy - #| msgid "Set output format" - msgid "Input format" -@@ -563,7 +569,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -571,7 +577,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "Libvirt-URI" - -@@ -579,15 +585,15 @@ msgstr "Libvirt-URI" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -604,7 +610,9 @@ msgstr "Dateien in Festplattenabbild verschieben" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -619,7 +627,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -695,11 +703,11 @@ msgstr "BERECHTIGUNGEN:DATEI" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -723,7 +731,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -764,63 +772,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "QUELLE:ZIEL" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -832,39 +840,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "Ausgabeformat festlegen" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "Ausgabemodus festlegen (Standard: libvirt)" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -898,15 +906,15 @@ msgstr "Ausgabeformat festlegen" - msgid "Set user password" - msgstr "Benutzerpasswort festlegen" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -922,7 +930,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "ZEITZONE" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -939,7 +947,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -986,15 +994,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -1006,6 +1014,12 @@ msgstr "" - msgid "Write file" - msgstr "Datei schreiben" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1132,7 +1146,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1340,7 +1354,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1466,7 +1480,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1602,7 +1616,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1622,13 +1638,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1771,11 +1787,11 @@ msgstr "%s beendet mit Fehlerstatus %d" - msgid "subprocess signalled or stopped by signal %d" - msgstr "%s gestoppt durch Signal %d (%s)" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1839,7 +1855,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1864,13 +1880,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1904,7 +1920,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1916,7 +1932,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1924,11 +1940,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/es.po b/po/es.po -index ccc89021..1ac96853 100644 ---- a/po/es.po -+++ b/po/es.po -@@ -12,7 +12,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-03-16 07:04+0000\n" - "Last-Translator: Alex Puchades \n" - "Language-Team: Spanish (http://www.transifex.com/projects/p/libguestfs/" -@@ -78,7 +78,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -237,6 +237,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -339,7 +343,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -391,7 +397,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -403,7 +409,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -415,7 +421,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -427,7 +433,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -505,7 +511,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -513,7 +519,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -525,7 +531,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -533,7 +539,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -560,7 +566,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -568,7 +574,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -576,15 +582,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -601,7 +607,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -616,7 +624,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -692,11 +700,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -720,7 +728,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -761,63 +769,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -829,39 +837,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -893,15 +901,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -917,7 +925,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -934,7 +942,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -981,15 +989,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -1001,6 +1009,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1127,7 +1141,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1337,7 +1351,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1463,7 +1477,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1599,7 +1613,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1619,13 +1635,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1764,11 +1780,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1832,7 +1848,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1857,13 +1873,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1897,7 +1913,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1909,7 +1925,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1917,11 +1933,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/fi.po b/po/fi.po -index a079dea0..ba7ac019 100644 ---- a/po/fi.po -+++ b/po/fi.po -@@ -8,7 +8,7 @@ msgstr "" - "Project-Id-Version: virt-v2v 1.43.4\n" - "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" - "component=libguestfs&product=Virtualization+Tools\n" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2022-12-23 18:20+0000\n" - "Last-Translator: Jan Kuparinen \n" - "Language-Team: Finnish = 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -389,7 +395,7 @@ msgstr "Liitä tiedostoon rivit" - msgid "Attach to a subscription-manager pool" - msgstr "Liitä tilaus-manager-varantoon" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -401,7 +407,7 @@ msgstr "Muuta tiedoston käyttöoikeuksia" - msgid "Compatibility option doing nothing" - msgstr "Yhteensopivuusvaihtoehto, ei tee mitään" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -413,7 +419,7 @@ msgstr "Kopioi levykuvan tiedostot" - msgid "Copy local files or directories into image" - msgstr "Kopioi paikalliset tiedostot tai hakemistot kuvaan" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -425,7 +431,7 @@ msgstr "Luo hakemisto" - msgid "Create symbolic links" - msgstr "Luo symbolisia linkkejä" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -503,7 +509,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -511,7 +517,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -523,7 +529,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -531,7 +537,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -558,7 +564,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -566,7 +572,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "Libvirt:n URI" - -@@ -574,15 +580,15 @@ msgstr "Libvirt:n URI" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -599,7 +605,9 @@ msgstr "Siirrä levykuvassa olevia tiedostoja" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -614,7 +622,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -690,11 +698,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -718,7 +726,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -759,63 +767,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -827,39 +835,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -891,15 +899,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -915,7 +923,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -932,7 +940,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -979,15 +987,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -999,6 +1007,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1127,7 +1141,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1335,7 +1349,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1461,7 +1475,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1597,7 +1611,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1617,13 +1633,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1762,11 +1778,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1830,7 +1846,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1855,13 +1871,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1895,7 +1911,7 @@ msgstr "tuntematon --root vaihtoehto: %s" - msgid "unknown -i option: %s" - msgstr "tuntematon -i vaihtoehto: %s" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "tuntematon -o vaihtoehto: %s" - -@@ -1907,7 +1923,7 @@ msgstr "tuntematon -oa vaihtoehto: %s" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1915,11 +1931,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/fr.po b/po/fr.po -index 476efdaf..4dafd886 100644 ---- a/po/fr.po -+++ b/po/fr.po -@@ -12,7 +12,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:49+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: French (http://www.transifex.com/projects/p/libguestfs/" -@@ -78,7 +78,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -239,6 +239,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -341,7 +345,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -393,7 +399,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -405,7 +411,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -417,7 +423,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -429,7 +435,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -507,7 +513,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -515,7 +521,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -527,7 +533,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -535,7 +541,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -562,7 +568,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -570,7 +576,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -578,15 +584,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -603,7 +609,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -618,7 +626,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -694,11 +702,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -722,7 +730,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -763,63 +771,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -831,39 +839,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -895,15 +903,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -919,7 +927,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -936,7 +944,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -983,15 +991,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -1003,6 +1011,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1131,7 +1145,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1341,7 +1355,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1467,7 +1481,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1603,7 +1617,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1623,13 +1639,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1772,11 +1788,11 @@ msgstr "%s s'est terminé avec l'état d'erreur %d" - msgid "subprocess signalled or stopped by signal %d" - msgstr "%s a été arrêté par le signal %d (%s)" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1840,7 +1856,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1865,13 +1881,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1905,7 +1921,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1917,7 +1933,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1925,11 +1941,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/gu.po b/po/gu.po -index 400a91e7..70c0cf07 100644 ---- a/po/gu.po -+++ b/po/gu.po -@@ -10,7 +10,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:49+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Gujarati (http://www.transifex.com/projects/p/libguestfs/" -@@ -76,7 +76,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -235,6 +235,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -337,7 +341,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -389,7 +395,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -401,7 +407,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -413,7 +419,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -425,7 +431,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -503,7 +509,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -511,7 +517,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -523,7 +529,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -531,7 +537,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -558,7 +564,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -566,7 +572,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -574,15 +580,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -599,7 +605,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -614,7 +622,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -690,11 +698,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -718,7 +726,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -759,63 +767,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -827,39 +835,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -891,15 +899,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -915,7 +923,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -932,7 +940,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -979,15 +987,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -999,6 +1007,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1125,7 +1139,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1335,7 +1349,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1461,7 +1475,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1597,7 +1611,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1617,13 +1633,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1762,11 +1778,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1830,7 +1846,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1855,13 +1871,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1895,7 +1911,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1907,7 +1923,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1915,11 +1931,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/hi.po b/po/hi.po -index 9efa8421..30001cc1 100644 ---- a/po/hi.po -+++ b/po/hi.po -@@ -10,7 +10,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:49+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Hindi (http://www.transifex.com/projects/p/libguestfs/" -@@ -76,7 +76,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -235,6 +235,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -337,7 +341,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -389,7 +395,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -401,7 +407,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -413,7 +419,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -425,7 +431,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -503,7 +509,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -511,7 +517,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -523,7 +529,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -531,7 +537,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -558,7 +564,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -566,7 +572,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -574,15 +580,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -599,7 +605,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -614,7 +622,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -690,11 +698,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -718,7 +726,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -759,63 +767,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -827,39 +835,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -891,15 +899,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -915,7 +923,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -932,7 +940,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -979,15 +987,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -999,6 +1007,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1125,7 +1139,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1333,7 +1347,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1459,7 +1473,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1595,7 +1609,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1615,13 +1631,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1760,11 +1776,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1828,7 +1844,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1853,13 +1869,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1893,7 +1909,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1905,7 +1921,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1913,11 +1929,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/ja.po b/po/ja.po -index f98093e8..dbe2cad2 100644 ---- a/po/ja.po -+++ b/po/ja.po -@@ -11,7 +11,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2017-02-24 07:33+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Japanese (http://www.transifex.com/projects/p/libguestfs/" -@@ -77,7 +77,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -238,6 +238,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -340,7 +344,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -392,7 +398,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -404,7 +410,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -416,7 +422,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -428,7 +434,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -506,7 +512,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -514,7 +520,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -526,7 +532,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -534,7 +540,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -561,7 +567,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -569,7 +575,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -577,15 +583,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -602,7 +608,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -617,7 +625,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -693,11 +701,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -721,7 +729,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -762,63 +770,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -830,39 +838,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -894,15 +902,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -918,7 +926,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -935,7 +943,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -982,15 +990,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -1002,6 +1010,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1130,7 +1144,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1340,7 +1354,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1466,7 +1480,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1602,7 +1616,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1622,13 +1638,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1771,11 +1787,11 @@ msgstr "%s がエラーステータス %d で終了しました" - msgid "subprocess signalled or stopped by signal %d" - msgstr "%s がシグナル %d (%s) により停止しました" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1839,7 +1855,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1864,12 +1880,12 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1902,7 +1918,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1914,7 +1930,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1922,11 +1938,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/ka.po b/po/ka.po -index 26d41f6b..1e8e654a 100644 ---- a/po/ka.po -+++ b/po/ka.po -@@ -6,9 +6,9 @@ - msgid "" - msgstr "" - "Project-Id-Version: virt-v2v 2.1.1\n" --"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug." --"cgi?component=libguestfs&product=Virtualization+Tools\n" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" -+"component=libguestfs&product=Virtualization+Tools\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2023-01-13 20:20+0000\n" - "Last-Translator: Temuri Doghonadze \n" - "Language-Team: Georgian = 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -387,7 +393,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -399,7 +405,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -411,7 +417,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -423,7 +429,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -501,7 +507,7 @@ msgstr "" - msgid "FILENAME" - msgstr "ფაილის სახელი" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -509,7 +515,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "ჰოსტის სახელი" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -521,7 +527,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -529,7 +535,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -556,7 +562,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -564,7 +570,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "Libvirt-ის URI" - -@@ -572,15 +578,15 @@ msgstr "Libvirt-ის URI" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -597,7 +603,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -612,7 +620,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -688,11 +696,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -716,7 +724,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -757,63 +765,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -825,39 +833,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -889,15 +897,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -913,7 +921,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -930,7 +938,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -977,15 +985,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -997,6 +1005,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1123,7 +1137,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1331,7 +1345,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1457,7 +1471,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1593,7 +1607,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1613,13 +1629,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1758,11 +1774,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1826,7 +1842,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1851,13 +1867,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1891,7 +1907,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1903,7 +1919,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1911,11 +1927,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/kn.po b/po/kn.po -index db65445d..db6460c0 100644 ---- a/po/kn.po -+++ b/po/kn.po -@@ -9,7 +9,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:50+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Kannada (http://www.transifex.com/projects/p/libguestfs/" -@@ -75,7 +75,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -234,6 +234,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -336,7 +340,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -388,7 +394,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -400,7 +406,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -412,7 +418,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -424,7 +430,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -502,7 +508,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -510,7 +516,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -522,7 +528,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -530,7 +536,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -557,7 +563,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -565,7 +571,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -573,15 +579,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -598,7 +604,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -613,7 +621,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -689,11 +697,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -717,7 +725,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -758,63 +766,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -826,39 +834,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -890,15 +898,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -914,7 +922,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -931,7 +939,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -978,15 +986,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -998,6 +1006,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1124,7 +1138,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1332,7 +1346,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1458,7 +1472,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1594,7 +1608,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1614,13 +1630,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1759,11 +1775,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1827,7 +1843,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1852,12 +1868,12 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1890,7 +1906,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1902,7 +1918,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1910,11 +1926,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/ml.po b/po/ml.po -index 8461c4e6..393d1c56 100644 ---- a/po/ml.po -+++ b/po/ml.po -@@ -9,7 +9,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:50+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Malayalam (http://www.transifex.com/projects/p/libguestfs/" -@@ -75,7 +75,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -234,6 +234,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -336,7 +340,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -388,7 +394,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -400,7 +406,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -412,7 +418,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -424,7 +430,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -502,7 +508,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -510,7 +516,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -522,7 +528,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -530,7 +536,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -557,7 +563,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -565,7 +571,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -573,15 +579,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -598,7 +604,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -613,7 +621,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -689,11 +697,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -717,7 +725,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -758,63 +766,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -826,39 +834,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -890,15 +898,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -914,7 +922,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -931,7 +939,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -978,15 +986,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -998,6 +1006,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1124,7 +1138,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1332,7 +1346,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1458,7 +1472,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1594,7 +1608,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1614,13 +1630,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1759,11 +1775,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1827,7 +1843,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1852,13 +1868,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1892,7 +1908,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1904,7 +1920,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1912,11 +1928,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/mr.po b/po/mr.po -index e867a8be..ab5c282f 100644 ---- a/po/mr.po -+++ b/po/mr.po -@@ -10,7 +10,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:51+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Marathi (http://www.transifex.com/projects/p/libguestfs/" -@@ -76,7 +76,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -235,6 +235,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -337,7 +341,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -389,7 +395,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -401,7 +407,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -413,7 +419,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -425,7 +431,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -503,7 +509,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -511,7 +517,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -523,7 +529,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -531,7 +537,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -558,7 +564,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -566,7 +572,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -574,15 +580,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -599,7 +605,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -614,7 +622,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -690,11 +698,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -718,7 +726,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -759,63 +767,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -827,39 +835,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -891,15 +899,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -915,7 +923,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -932,7 +940,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -979,15 +987,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -999,6 +1007,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1125,7 +1139,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1335,7 +1349,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1461,7 +1475,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1597,7 +1611,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1617,13 +1633,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1762,11 +1778,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1830,7 +1846,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1855,13 +1871,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1895,7 +1911,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1907,7 +1923,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1915,11 +1931,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/nl.po b/po/nl.po -index 81a66234..251e9c4b 100644 ---- a/po/nl.po -+++ b/po/nl.po -@@ -11,7 +11,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:51+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Dutch (http://www.transifex.com/projects/p/libguestfs/" -@@ -77,7 +77,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -238,6 +238,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -340,7 +344,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -392,7 +398,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -404,7 +410,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -416,7 +422,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -428,7 +434,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -506,7 +512,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -514,7 +520,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -526,7 +532,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -534,7 +540,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -561,7 +567,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -569,7 +575,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -577,15 +583,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -602,7 +608,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -617,7 +625,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -693,11 +701,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -721,7 +729,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -762,63 +770,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -830,39 +838,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -894,15 +902,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -918,7 +926,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -935,7 +943,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -982,15 +990,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -1002,6 +1010,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1130,7 +1144,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1340,7 +1354,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1466,7 +1480,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1602,7 +1616,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1622,13 +1638,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1767,11 +1783,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1835,7 +1851,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1860,13 +1876,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1900,7 +1916,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1912,7 +1928,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1920,11 +1936,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/or.po b/po/or.po -index 73fb2ab6..8023ae0a 100644 ---- a/po/or.po -+++ b/po/or.po -@@ -9,7 +9,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:51+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Oriya (http://www.transifex.com/projects/p/libguestfs/" -@@ -75,7 +75,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -234,6 +234,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -336,7 +340,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -388,7 +394,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -400,7 +406,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -412,7 +418,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -424,7 +430,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -502,7 +508,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -510,7 +516,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -522,7 +528,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -530,7 +536,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -557,7 +563,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -565,7 +571,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -573,15 +579,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -598,7 +604,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -613,7 +621,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -689,11 +697,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -717,7 +725,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -758,63 +766,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -826,39 +834,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -890,15 +898,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -914,7 +922,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -931,7 +939,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -978,15 +986,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -998,6 +1006,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1124,7 +1138,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1332,7 +1346,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1458,7 +1472,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1594,7 +1608,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1614,13 +1630,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1759,11 +1775,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1827,7 +1843,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1852,13 +1868,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1892,7 +1908,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1904,7 +1920,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1912,11 +1928,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/pa.po b/po/pa.po -index 5e5ffc49..4f02ba2d 100644 ---- a/po/pa.po -+++ b/po/pa.po -@@ -10,7 +10,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2015-02-21 10:52+0000\n" - "Last-Translator: Copied by Zanata \n" - "Language-Team: Panjabi (Punjabi) (http://www.transifex.com/projects/p/" -@@ -76,7 +76,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -235,6 +235,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -337,7 +341,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -389,7 +395,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -401,7 +407,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -413,7 +419,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -425,7 +431,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -503,7 +509,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -511,7 +517,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -523,7 +529,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -531,7 +537,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -558,7 +564,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -566,7 +572,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -574,15 +580,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -599,7 +605,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -614,7 +622,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -690,11 +698,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -718,7 +726,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -759,63 +767,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -827,39 +835,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -891,15 +899,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -915,7 +923,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -932,7 +940,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -979,15 +987,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -999,6 +1007,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1125,7 +1139,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1335,7 +1349,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1461,7 +1475,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1597,7 +1611,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1617,13 +1633,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1762,11 +1778,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1830,7 +1846,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1855,13 +1871,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1895,7 +1911,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1907,7 +1923,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1915,11 +1931,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/pl.po b/po/pl.po -index e6f6ab2e..33768e4f 100644 ---- a/po/pl.po -+++ b/po/pl.po -@@ -13,7 +13,7 @@ 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2022-07-29 13:49+0000\n" - "Last-Translator: Piotr Drąg \n" - "Language-Team: Polish = 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -395,7 +401,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -407,7 +413,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -419,7 +425,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "Kopiuje lokalne pliki lub katalogi do obrazu" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -431,7 +437,7 @@ msgstr "Tworzy katalog" - msgid "Create symbolic links" - msgstr "Tworzy dowiązania symboliczne" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -509,7 +515,7 @@ msgstr "" - msgid "FILENAME" - msgstr "NAZWA-PLIKU" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -517,7 +523,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "NAZWA-KOMPUTERA" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -529,7 +535,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -537,7 +543,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -564,7 +570,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -572,7 +578,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "Adres URI biblioteki libvirt" - -@@ -580,15 +586,15 @@ msgstr "Adres URI biblioteki libvirt" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -605,7 +611,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -620,7 +628,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -696,11 +704,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -724,7 +732,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -765,63 +773,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -833,39 +841,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -897,15 +905,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -921,7 +929,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -938,7 +946,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -985,15 +993,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -1005,6 +1013,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1131,7 +1145,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1339,7 +1353,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1465,7 +1479,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1601,7 +1615,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1621,13 +1637,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1766,11 +1782,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1834,7 +1850,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1859,14 +1875,14 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - msgstr[2] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1901,7 +1917,7 @@ msgstr "nieznana opcja --root: %s" - msgid "unknown -i option: %s" - msgstr "nieznana opcja -i: %s" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "nieznana opcja -o: %s" - -@@ -1913,7 +1929,7 @@ msgstr "nieznana opcja -oa: %s" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1921,11 +1937,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/si.po b/po/si.po -index a32848f0..b84ba845 100644 ---- a/po/si.po -+++ b/po/si.po -@@ -8,7 +8,7 @@ msgstr "" - "Project-Id-Version: virt-v2v 1.43.3\n" - "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" - "component=libguestfs&product=Virtualization+Tools\n" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" - "Last-Translator: Automatically generated\n" - "Language-Team: none\n" -@@ -72,7 +72,7 @@ msgid "" - "%!" - msgstr "" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -231,6 +231,10 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "" - -+#: output/output_kubevirt.ml:56 -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -333,7 +337,9 @@ msgstr "" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "" - -@@ -385,7 +391,7 @@ msgstr "" - msgid "Attach to a subscription-manager pool" - msgstr "" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "" - -@@ -397,7 +403,7 @@ msgstr "" - msgid "Compatibility option doing nothing" - msgstr "" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "" - -@@ -409,7 +415,7 @@ msgstr "" - msgid "Copy local files or directories into image" - msgstr "" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "" - -@@ -421,7 +427,7 @@ msgstr "" - msgid "Create symbolic links" - msgstr "" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "" - -@@ -499,7 +505,7 @@ msgstr "" - msgid "FILENAME" - msgstr "" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "" - -@@ -507,7 +513,7 @@ msgstr "" - msgid "HOSTNAME" - msgstr "" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "" - -@@ -519,7 +525,7 @@ msgid "" - " %s -v -x [...]" - msgstr "" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "" - -@@ -527,7 +533,7 @@ msgstr "" - msgid "Inject a public key into the guest" - msgstr "" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "" - -@@ -554,7 +560,7 @@ msgid "" - "information on these settings.\n" - msgstr "" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "" - -@@ -562,7 +568,7 @@ msgstr "" - msgid "LOCALPATH:REMOTEDIR" - msgstr "" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "" - -@@ -570,15 +576,15 @@ msgstr "" - msgid "Make output machine readable" - msgstr "" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "" - -@@ -595,7 +601,9 @@ msgstr "" - msgid "No input options can be used in this mode.\n" - msgstr "" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "" - -@@ -610,7 +618,7 @@ msgid "" - "building rhsrvany (https://github.com/rwmjones/rhsrvany)" - msgstr "" - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "" - -@@ -686,11 +694,11 @@ msgstr "" - msgid "PKG,PKG.." - msgstr "" - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - -@@ -714,7 +722,7 @@ msgstr "" - msgid "Remove all the subscriptions" - msgstr "" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "" - -@@ -755,63 +763,63 @@ msgstr "" - msgid "SOURCE:DEST" - msgstr "" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "" - -@@ -823,39 +831,39 @@ msgstr "" - msgid "Scrub build log file" - msgstr "" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "" - -@@ -887,15 +895,15 @@ msgstr "" - msgid "Set user password" - msgstr "" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "" - -@@ -911,7 +919,7 @@ msgstr "" - msgid "TIMEZONE" - msgstr "" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "" -@@ -928,7 +936,7 @@ msgid "" - "v2v -- refer to virt-v2v(1) section \"BUGS\"." - msgstr "" - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -975,15 +983,15 @@ msgstr "" - msgid "Use ANSI colour sequences even if not tty" - msgstr "" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "" - -@@ -995,6 +1003,12 @@ msgstr "" - msgid "Write file" - msgstr "" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1121,7 +1135,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - -@@ -1329,7 +1343,7 @@ msgid "" - "block devices\"." - msgstr "" - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1455,7 +1469,7 @@ msgid "" - "you need to rerun virt-v2v as root." - msgstr "" - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - -@@ -1591,7 +1605,9 @@ msgstr "" - msgid "no -io (input options) are allowed here" - msgstr "" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "" - -@@ -1611,13 +1627,13 @@ msgstr "" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." - msgstr "" - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -1756,11 +1772,11 @@ msgstr "" - msgid "subprocess signalled or stopped by signal %d" - msgstr "" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "" - -@@ -1824,7 +1840,7 @@ msgstr "" - msgid "the value of the key ‘%s’ is not an object" - msgstr "" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -1849,13 +1865,13 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" - msgstr[1] "" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -1889,7 +1905,7 @@ msgstr "" - msgid "unknown -i option: %s" - msgstr "" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "" - -@@ -1901,7 +1917,7 @@ msgstr "" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "" - -@@ -1909,11 +1925,11 @@ msgstr "" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "" - -diff --git a/po/uk.po b/po/uk.po -index 095ea330..bf21a0ed 100644 ---- a/po/uk.po -+++ b/po/uk.po -@@ -12,9 +12,9 @@ - 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" --"POT-Creation-Date: 2022-12-10 12:01+0000\n" -+"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" -+"component=libguestfs&product=Virtualization+Tools\n" -+"POT-Creation-Date: 2023-01-10 14:53+0000\n" - "PO-Revision-Date: 2022-12-24 19:20+0000\n" - "Last-Translator: Yuri Chornoivan \n" - "Language-Team: Ukrainian =2 && " --"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\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.15\n" - - #: input/input_ova.ml:134 common/mltools/tools_utils.ml:235 -@@ -95,7 +95,7 @@ msgstr "" - "%s: вихід за сигналом %s\n" - "%!" - --#: v2v/v2v.ml:310 -+#: v2v/v2v.ml:311 - msgid "" - "%s: convert a guest to use KVM\n" - "\n" -@@ -315,6 +315,14 @@ msgstr "" - msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "-o disk: невідомий параметр виведення — «-oo %s»" - -+#: output/output_kubevirt.ml:56 -+#, fuzzy -+#| msgid "-o disk: output directory was not specified, use '-os /dir'" -+msgid "-o kubevirt: output directory was not specified, use '-os /dir'" -+msgstr "" -+"-o disk: не вказано каталогу для виведення даних, скористайтеся «-os /" -+"каталог»" -+ - #: output/output_libvirt.ml:115 - msgid "" - "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " -@@ -431,7 +439,9 @@ msgstr "-o vdsm: невідомий рівень vdsm-compat «%s»" - msgid "-oo compressed option requires nbdcopy >= 1.13.5" - msgstr "використання параметра -oo compressed потребує nbdcopy >= 1.13.5" - --#: output/output_vdsm.ml:111 output/output_qemu.ml:74 output/output_disk.ml:68 -+#. output/output_kubevirt.ml:58 -+#. output/output_disk.ml:68 -+#: output/output_vdsm.ml:111 output/output_qemu.ml:74 - msgid "-os %s: output directory does not exist or is not a directory" - msgstr "-os %s: каталогу виведення даних не існує або вказано не каталог" - -@@ -488,7 +498,7 @@ msgstr "Дописати рядки до файла" - msgid "Attach to a subscription-manager pool" - msgstr "Долучити до буфера subscription-manager" - --#: v2v/v2v.ml:273 -+#: v2v/v2v.ml:274 - msgid "Boot in qemu (-o qemu only)" - msgstr "Завантажитися у qemu (лише для -o qemu)" - -@@ -500,7 +510,7 @@ msgstr "Змінити права доступу до файла" - msgid "Compatibility option doing nothing" - msgstr "Параметр сумісності ні на що не впливає" - --#: v2v/v2v.ml:231 -+#: v2v/v2v.ml:232 - msgid "Compress output file (-of qcow2 only)" - msgstr "Стиснути файл виведення (лише для -of qcow2)" - -@@ -512,7 +522,7 @@ msgstr "Копіювати файли на образ диска" - msgid "Copy local files or directories into image" - msgstr "Копіювати локальні файли або каталоги до образу" - --#: v2v/v2v.ml:583 -+#: v2v/v2v.ml:586 - msgid "Copying disk %d/%d" - msgstr "Копіювання диска %d з %d" - -@@ -524,7 +534,7 @@ msgstr "Створити каталог" - msgid "Create symbolic links" - msgstr "Створювати символічні посилання" - --#: v2v/v2v.ml:604 -+#: v2v/v2v.ml:607 - msgid "Creating output metadata" - msgstr "Створюємо метадані результатів" - -@@ -602,7 +612,7 @@ msgstr "ФАЙЛ:РЯДОК" - msgid "FILENAME" - msgstr "НАЗВА_ФАЙЛА" - --#: v2v/v2v.ml:608 inspector/inspector.ml:358 in-place/in_place.ml:341 -+#: v2v/v2v.ml:611 inspector/inspector.ml:358 in-place/in_place.ml:341 - msgid "Finishing off" - msgstr "Завершуємо" - -@@ -610,7 +620,7 @@ msgstr "Завершуємо" - msgid "HOSTNAME" - msgstr "НАЗВА_ВУЗЛА" - --#: v2v/v2v.ml:275 inspector/inspector.ml:178 in-place/in_place.ml:174 -+#: v2v/v2v.ml:276 inspector/inspector.ml:178 in-place/in_place.ml:174 - msgid "How to choose root filesystem" - msgstr "Як вибрати кореневу файлову систему" - -@@ -626,7 +636,7 @@ msgstr "" - "\n" - " %s -v -x [...]" - --#: v2v/v2v.ml:305 v2v/v2v.ml:251 -+#: v2v/v2v.ml:306 v2v/v2v.ml:252 - msgid "Ignored for backwards compatibility" - msgstr "Ігноровано, для зворотної сумісності" - -@@ -634,7 +644,7 @@ msgstr "Ігноровано, для зворотної сумісності" - msgid "Inject a public key into the guest" - msgstr "Вставити відкритий ключ до гостьової системи" - --#: v2v/v2v.ml:237 inspector/inspector.ml:166 in-place/in_place.ml:162 -+#: v2v/v2v.ml:238 inspector/inspector.ml:166 in-place/in_place.ml:162 - msgid "Input format" - msgstr "Формат вхідних даних" - -@@ -682,7 +692,7 @@ msgstr "" - "більше\n" - "про ці параметри.\n" - --#: v2v/v2v.ml:243 inspector/inspector.ml:172 -+#: v2v/v2v.ml:244 inspector/inspector.ml:172 - msgid "Input transport" - msgstr "Вхідне передавання" - -@@ -690,7 +700,7 @@ msgstr "Вхідне передавання" - msgid "LOCALPATH:REMOTEDIR" - msgstr "ЛОКАЛЬНИЙШЛЯХ:ВІДДАЛЕНИЙКАТАЛОГ" - --#: v2v/v2v.ml:235 inspector/inspector.ml:164 in-place/in_place.ml:160 -+#: v2v/v2v.ml:236 inspector/inspector.ml:164 in-place/in_place.ml:160 - msgid "Libvirt URI" - msgstr "Адреса libvirt" - -@@ -698,16 +708,16 @@ msgstr "Адреса libvirt" - msgid "Make output machine readable" - msgstr "Зробити машину виведення придатною до читання" - --#: v2v/v2v.ml:247 inspector/inspector.ml:174 in-place/in_place.ml:168 -+#: v2v/v2v.ml:248 inspector/inspector.ml:174 in-place/in_place.ml:168 - msgid "Map NIC to network or bridge or assign static IP" - msgstr "" - "Пов'язати NIC із мережею або містком чи пов'язати із ним статичну IP-адресу" - --#: v2v/v2v.ml:229 inspector/inspector.ml:160 in-place/in_place.ml:156 -+#: v2v/v2v.ml:230 inspector/inspector.ml:160 in-place/in_place.ml:156 - msgid "Map bridge ‘in’ to ‘out’" - msgstr "Відобразити місток «in» на «out»" - --#: v2v/v2v.ml:249 inspector/inspector.ml:176 in-place/in_place.ml:170 -+#: v2v/v2v.ml:250 inspector/inspector.ml:176 in-place/in_place.ml:170 - msgid "Map network ‘in’ to ‘out’" - msgstr "Пов'язати мережу «in» із мережею «out»" - -@@ -724,7 +734,9 @@ msgstr "Пересунути файли на образ диска" - msgid "No input options can be used in this mode.\n" - msgstr "У цьому режимі не можна використовувати параметри вхідних даних.\n" - --#: output/output_rhv.ml:40 output/output_null.ml:38 output/output_glance.ml:40 -+#. output/output_glance.ml:40 -+#: output/output_rhv.ml:40 output/output_null.ml:38 -+#: output/output_kubevirt.ml:44 - msgid "No output options can be used in this mode.\n" - msgstr "У цьому режимі не можна використовувати параметри виведення.\n" - -@@ -743,7 +755,7 @@ msgstr "" - "Windows. Отримати цей файл можна зібравши rhsrvany (https://github.com/" - "rwmjones/rhsrvany)." - --#: v2v/v2v.ml:257 -+#: v2v/v2v.ml:258 - msgid "Output hypervisor connection" - msgstr "Вивести з'єднання гіпервізора" - -@@ -863,11 +875,11 @@ msgstr "ПРАВА_ДОСТУПУ:ФАЙЛ" - msgid "PKG,PKG.." - msgstr "ПАКУНОК,ПАКУНОК.." - --#: v2v/v2v.ml:271 in-place/in_place.ml:172 -+#: v2v/v2v.ml:272 in-place/in_place.ml:172 - msgid "Print source and stop" - msgstr "Вивести джерело і припинити обробку" - --#: lib/create_ovf.ml:865 lib/create_ovf.ml:509 -+#: lib/create_ovf.ml:874 lib/create_ovf.ml:518 - msgid "RHV does not support the output format ‘%s’, only raw or qcow2" - msgstr "" - "У RHV не передбачено формату виведення даних «‘%s», лише формати raw та qcow2" -@@ -892,7 +904,7 @@ msgstr "Зареєструвати за допомогою subscription-manager" - msgid "Remove all the subscriptions" - msgstr "Вилучити усі підписки" - --#: v2v/v2v.ml:261 -+#: v2v/v2v.ml:262 - msgid "Rename guest when converting" - msgstr "Перейменувати гостьову систему під час перетворення" - -@@ -933,63 +945,63 @@ msgstr "СЕЛЕКТОР" - msgid "SOURCE:DEST" - msgstr "ДЖЕРЕЛО:ПРИЗНАЧЕННЯ" - --#: v2v/v2v.ml:277 -+#: v2v/v2v.ml:278 - msgid "Same as ‘-io vddk-config=filename’" - msgstr "Те саме, що і «-io vddk-config=назва_файла»" - --#: v2v/v2v.ml:279 -+#: v2v/v2v.ml:280 - msgid "Same as ‘-io vddk-cookie=filename’" - msgstr "Те саме, що і «-io vddk-cookie=назва_файла»" - --#: v2v/v2v.ml:281 -+#: v2v/v2v.ml:282 - msgid "Same as ‘-io vddk-libdir=libdir’" - msgstr "Те саме, що і «-io vddk-libdir=каталог_бібліотек»" - --#: v2v/v2v.ml:283 -+#: v2v/v2v.ml:284 - msgid "Same as ‘-io vddk-nfchostport=nfchostport’" - msgstr "Те саме, що і «-io vddk-nfchostport=nfchostport»" - --#: v2v/v2v.ml:285 -+#: v2v/v2v.ml:286 - msgid "Same as ‘-io vddk-port=port’" - msgstr "Те саме, що і «-io vddk-port=порт»" - --#: v2v/v2v.ml:287 -+#: v2v/v2v.ml:288 - msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" - msgstr "Те саме, що і «-io vddk-snapshot=snapshot-moref»" - --#: v2v/v2v.ml:289 -+#: v2v/v2v.ml:290 - msgid "Same as ‘-io vddk-thumbprint=thumbprint’" - msgstr "Те саме, що і «-io vddk-thumbprint=відбиток»" - --#: v2v/v2v.ml:291 -+#: v2v/v2v.ml:292 - msgid "Same as ‘-io vddk-transports=transports’" - msgstr "Те саме, що і «-io vddk-transports=способи_передавання»" - --#: v2v/v2v.ml:269 -+#: v2v/v2v.ml:270 - msgid "Same as ‘-ip filename’" - msgstr "Те саме, що і «-ip назва_файла»" - --#: v2v/v2v.ml:293 -+#: v2v/v2v.ml:294 - msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" - msgstr "Те саме, що і «-oo vdsm-compat=0.10|1.1»" - --#: v2v/v2v.ml:295 -+#: v2v/v2v.ml:296 - msgid "Same as ‘-oo vdsm-image-uuid=uuid’" - msgstr "Те саме, що і «-oo vdsm-image-uuid=uuid»" - --#: v2v/v2v.ml:303 -+#: v2v/v2v.ml:304 - msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" - msgstr "Те саме, що і «-oo vdsm-ovf-flavour=варіант»" - --#: v2v/v2v.ml:301 -+#: v2v/v2v.ml:302 - msgid "Same as ‘-oo vdsm-ovf-output=dir’" - msgstr "Те саме, що і «-oo vdsm-ovf-output=каталог»" - --#: v2v/v2v.ml:299 -+#: v2v/v2v.ml:300 - msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" - msgstr "Те саме, що і «-oo vdsm-vm-uuid=uuid»" - --#: v2v/v2v.ml:297 -+#: v2v/v2v.ml:298 - msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" - msgstr "Те саме, що і «-oo vdsm-vol-uuid=uuid»" - -@@ -1001,39 +1013,39 @@ msgstr "Витерти файл" - msgid "Scrub build log file" - msgstr "Витерти файл журналу збирання" - --#: v2v/v2v.ml:227 -+#: v2v/v2v.ml:228 - msgid "Set bandwidth dynamically from file" - msgstr "Встановити ширину каналу динамічно з файла" - --#: v2v/v2v.ml:225 -+#: v2v/v2v.ml:226 - msgid "Set bandwidth to bits per sec" - msgstr "Встановити ширину каналу у бітах за секунду" - --#: v2v/v2v.ml:233 inspector/inspector.ml:162 in-place/in_place.ml:158 -+#: v2v/v2v.ml:234 inspector/inspector.ml:162 in-place/in_place.ml:158 - msgid "Set input mode (default: libvirt)" - msgstr "Встановити режим введення даних (типовий: libvirt)" - --#: v2v/v2v.ml:239 inspector/inspector.ml:168 in-place/in_place.ml:164 -+#: v2v/v2v.ml:240 inspector/inspector.ml:168 in-place/in_place.ml:164 - msgid "Set option for input mode" - msgstr "Встановити варіант для режиму вхідних даних" - --#: v2v/v2v.ml:263 -+#: v2v/v2v.ml:264 - msgid "Set option for output mode" - msgstr "Встановити варіант для режиму виведення" - --#: v2v/v2v.ml:255 -+#: v2v/v2v.ml:256 - msgid "Set output allocation mode" - msgstr "Встановити режим отримання пам’яті для виведення даних" - --#: v2v/v2v.ml:259 -+#: v2v/v2v.ml:260 - msgid "Set output format" - msgstr "встановити формат виведення даних" - --#: v2v/v2v.ml:253 -+#: v2v/v2v.ml:254 - msgid "Set output mode (default: libvirt)" - msgstr "Встановити режим виведення (типовий: libvirt)" - --#: v2v/v2v.ml:267 -+#: v2v/v2v.ml:268 - msgid "Set output storage location" - msgstr "Встановити розташування сховища виведених даних" - -@@ -1065,15 +1077,15 @@ msgstr "Встановити назву файла результатів" - msgid "Set user password" - msgstr "Встановити пароль користувача" - --#: v2v/v2v.ml:555 -+#: v2v/v2v.ml:558 - msgid "Setting up the destination: %s" - msgstr "Налаштовуємо призначення: %s" - --#: v2v/v2v.ml:531 inspector/inspector.ml:334 in-place/in_place.ml:307 -+#: v2v/v2v.ml:534 inspector/inspector.ml:334 in-place/in_place.ml:307 - msgid "Setting up the source: %s" - msgstr "Налаштовуємо джерело: %s" - --#: v2v/v2v.ml:537 in-place/in_place.ml:313 -+#: v2v/v2v.ml:540 in-place/in_place.ml:313 - msgid "Source guest information (--print-source option):\n" - msgstr "Дані щодо гостьової системи джерела (параметр --print-source):\n" - -@@ -1089,7 +1101,7 @@ msgstr "ПРИЗНАЧЕННЯ:ПОСИЛАННЯ[:ПОСИЛАННЯ..]" - msgid "TIMEZONE" - msgstr "ЧАСОВИЙ_ПОЯС" - --#: v2v/v2v.ml:219 -+#: v2v/v2v.ml:220 - msgid "" - "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" - msgstr "Параметр --in-place замінено на програму «virt-v2v-in-place»" -@@ -1112,7 +1124,7 @@ msgstr "" - "про ваду у virt-v2v — скористайтеся розділом «BUGS» сторінки підручника virt-" - "v2v(1)." - --#: lib/create_ovf.ml:776 -+#: lib/create_ovf.ml:785 - msgid "" - "This guest required a password for connection to its display, but this is " - "not supported by RHV. Therefore the converted guest’s display will not " -@@ -1167,15 +1179,15 @@ msgstr "Вивантажити локальний файл у систему п - msgid "Use ANSI colour sequences even if not tty" - msgstr "Використовувати послідовності ANSI для кольорів, навіть якщо це не tty" - --#: v2v/v2v.ml:241 inspector/inspector.ml:170 in-place/in_place.ml:166 -+#: v2v/v2v.ml:242 inspector/inspector.ml:170 in-place/in_place.ml:166 - msgid "Use password from file to connect to input hypervisor" - msgstr "Скористатися паролем з файла для з'єднання із вхідним гіпервізором" - --#: v2v/v2v.ml:265 -+#: v2v/v2v.ml:266 - msgid "Use password from file to connect to output hypervisor" - msgstr "Скористатися паролем з файла для з'єднання із вихідним гіпервізором" - --#: v2v/v2v.ml:245 -+#: v2v/v2v.ml:246 - msgid "Use virt-v2v-in-place instead" - msgstr "Скористайтеся краще virt-v2v-in-place" - -@@ -1187,6 +1199,12 @@ msgstr "Переносити рядки повідомлень журналу, - msgid "Write file" - msgstr "Записати файл" - -+#: lib/YAML.ml:162 -+msgid "" -+"YAML block contains newline character. This should not happen, please " -+"report a bug against virt-v2v." -+msgstr "" -+ - #: input/input_vddk.ml:98 - msgid "" - "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " -@@ -1365,7 +1383,7 @@ msgstr "" - #. input/input_vddk.ml:122 - #. input/input_vcenter_https.ml:91 - #. in-place/in_place.ml:257 --#: v2v/v2v.ml:421 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 -+#: v2v/v2v.ml:423 inspector/inspector.ml:263 input/input_xen_ssh.ml:69 - msgid "could not parse '-ic %s'. Original error message was: %s" - msgstr "" - "не вдалося обробити параметр «-ic %s». Початкове повідомлення щодо помилки: " -@@ -1609,7 +1627,7 @@ msgstr "" - "дисків, які зберігаються на віддалених блокових пристроях. Див. підручник з " - "virt-v2v-input-xen(1), розділ «Xen or ssh conversions from block devices»." - --#: v2v/v2v.ml:627 inspector/inspector.ml:377 in-place/in_place.ml:360 -+#: v2v/v2v.ml:630 inspector/inspector.ml:377 in-place/in_place.ml:360 - msgid "" - "insufficient free space in the conversion server temporary directory %s " - "(%s).\n" -@@ -1754,7 +1772,7 @@ msgstr "" - "того, можливо, вам слід повторно запустити virt-v2v від імені користувача " - "root." - --#: v2v/v2v.ml:660 -+#: v2v/v2v.ml:663 - msgid "nbdcopy command failed, see earlier error messages" - msgstr "" - "помилка під час спроби виконати nbdcopy, див. попередні повідомлення щодо " -@@ -1935,7 +1953,9 @@ msgstr "nbdkit: неочікувана версія у --dump-config: %s" - msgid "no -io (input options) are allowed here" - msgstr "тут не можна використовувати -io (вхідні параметри)" - --#: output/output_rhv.ml:44 output/output_null.ml:42 output/output_glance.ml:44 -+#. output/output_glance.ml:44 -+#: output/output_rhv.ml:44 output/output_null.ml:42 -+#: output/output_kubevirt.ml:48 - msgid "no -oo (output options) are allowed here" - msgstr "тут не можна використовувати -oo (параметри виведення)" - -@@ -1955,7 +1975,7 @@ msgstr "немає href у ovf:File (id=%s)" - msgid "no python binary called ‘%s’ can be found on the $PATH" - msgstr "не знайдено виконуваного файла python із назвою «%s» у $PATH" - --#: v2v/v2v.ml:451 inspector/inspector.ml:293 -+#: v2v/v2v.ml:453 inspector/inspector.ml:293 - msgid "" - "no support for remote libvirt connections to '-ic %s'. The conversion may " - "fail when it tries to read the source disks." -@@ -1963,7 +1983,7 @@ msgstr "" - "немає підтримки віддалених з’єднань libvirt з «-ic %s». Перетворення може " - "призвести до помилок під час спроб прочитати диски джерел даних." - --#: lib/create_ovf.ml:1015 -+#: lib/create_ovf.ml:1024 - msgid "" - "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " - "the output." -@@ -2141,12 +2161,12 @@ msgstr "підпроцес завершив роботу з ненульовим - msgid "subprocess signalled or stopped by signal %d" - msgstr "підпроцес надіслав сигнал або зупинив роботу внаслідок сигналу %d" - --#: v2v/v2v.ml:211 -+#: v2v/v2v.ml:212 - msgid "the --no-trim option has been removed and now does nothing" - msgstr "" - "параметр --no-trim вилучено зі списку параметрів, тепер він не потрібен" - --#: v2v/v2v.ml:214 -+#: v2v/v2v.ml:215 - msgid "the --vmtype option has been removed and now does nothing" - msgstr "параметр --vmtype вилучено зі списку параметрів, тепер він не потрібен" - -@@ -2219,7 +2239,7 @@ msgstr "значення не є об’єктом" - msgid "the value of the key ‘%s’ is not an object" - msgstr "значенням ключа «%s» не є об’єкт" - --#: lib/create_ovf.ml:515 -+#: lib/create_ovf.ml:524 - msgid "" - "the virtual size of the input disk %d is not an exact multiple of 512 " - "bytes. The virtual size is: %Ld.\n" -@@ -2252,7 +2272,7 @@ msgstr "" - msgid "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" - msgstr "у %s (%s) немає UUID. Це справді OVirt чи RHV-M %s?" - --#: input/parse_libvirt_xml.ml:483 -+#: input/parse_libvirt_xml.ml:494 - msgid "this guest has a direct network interface which will be ignored" - msgid_plural "this guest has direct network interfaces which will be ignored" - msgstr[0] "" -@@ -2265,7 +2285,7 @@ msgstr[2] "" - "ця гостьова система має безпосередні інтерфейси мережі, які буде " - "проігноровано" - --#: input/parse_libvirt_xml.ml:465 -+#: input/parse_libvirt_xml.ml:476 - msgid "this guest has a passthrough host device which will be ignored" - msgid_plural "this guest has passthrough host devices which will be ignored" - msgstr[0] "" -@@ -2307,7 +2327,7 @@ msgstr "невідомий параметр --root: %s" - msgid "unknown -i option: %s" - msgstr "невідомий параметр -i: %s" - --#: v2v/v2v.ml:206 -+#: v2v/v2v.ml:207 - msgid "unknown -o option: %s" - msgstr "невідомий параметр -o: %s" - -@@ -2319,7 +2339,7 @@ msgstr "невідомий параметр -oa: %s" - msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" - msgstr "невідоме значення Config:firmware %s (мало бути «bios» або «efi»)" - --#: lib/create_ovf.ml:246 -+#: lib/create_ovf.ml:452 lib/create_ovf.ml:246 - msgid "unknown Windows 10 variant: %s (%s)" - msgstr "невідомий варіант Windows 10: %s (%s)" - -@@ -2327,11 +2347,11 @@ msgstr "невідомий варіант Windows 10: %s (%s)" - msgid "unknown firmware value '%s', assuming BIOS" - msgstr "невідоме значення мікропрограми, «%s», припускаємо BIOS" - --#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:451 lib/create_ovf.ml:254 -+#: output/create_libvirt_xml.ml:143 lib/create_ovf.ml:460 lib/create_ovf.ml:254 - msgid "unknown guest operating system: %s %s %d.%d %s (%s)" - msgstr "невідома гостьова операційна система: %s %s %d.%d %s (%s)" - --#: v2v/v2v.ml:358 inspector/inspector.ml:222 -+#: v2v/v2v.ml:359 inspector/inspector.ml:222 - msgid "unknown input transport ‘-it %s’" - msgstr "невідомий вхідний канал передавання «-it %s»" - diff --git a/SOURCES/0005-virt-v2v-i-vmx-Simplify-scp-wrapper.patch b/SOURCES/0005-virt-v2v-i-vmx-Simplify-scp-wrapper.patch new file mode 100644 index 0000000..7ed4262 --- /dev/null +++ b/SOURCES/0005-virt-v2v-i-vmx-Simplify-scp-wrapper.patch @@ -0,0 +1,84 @@ +From a0b22af28782a485cc2241dce55b8f435d8aaefc Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 15 Jan 2024 14:35:57 +0000 +Subject: [PATCH] virt-v2v: -i vmx: Simplify scp wrapper + +The existing 'scp_from_remote_to_temporary' wrapper around scp was +pretty weird (I think from much patching without refactoring). +Simplify it so it no longer generates the output filename, and rename +it accordingly to 'download_file' (as we will soon remove the need for +and dependency on 'scp'). + +Reviewed-by: Laszlo Ersek +--- + input/parse_domain_from_vmx.ml | 4 ++-- + input/ssh.ml | 13 ++++--------- + input/ssh.mli | 7 +++---- + 3 files changed, 9 insertions(+), 15 deletions(-) + +diff --git a/input/parse_domain_from_vmx.ml b/input/parse_domain_from_vmx.ml +index 8cf5893c..e6500da6 100644 +--- a/input/parse_domain_from_vmx.ml ++++ b/input/parse_domain_from_vmx.ml +@@ -335,8 +335,8 @@ let parse_domain_from_vmx vmx_source = + match vmx_source with + | File filename -> Parse_vmx.parse_file filename + | SSH uri -> +- let filename = Ssh.scp_from_remote_to_temporary uri tmpdir +- "source.vmx" in ++ let filename = tmpdir // "source.vmx" in ++ Ssh.download_file uri filename; + Parse_vmx.parse_file filename in + + let name = +diff --git a/input/ssh.ml b/input/ssh.ml +index 5e689d29..63ffeb12 100644 +--- a/input/ssh.ml ++++ b/input/ssh.ml +@@ -32,12 +32,8 @@ let server_of_uri { Xml.uri_server } = + let path_of_uri { Xml.uri_path } = + match uri_path with None -> assert false | Some p -> p + +-(* 'scp' a remote file into a temporary local file, returning the path +- * of the temporary local file. +- *) +-let scp_from_remote_to_temporary uri tmpdir filename = +- let localfile = tmpdir // filename in +- ++(* 'scp' a remote file into a local file. *) ++let download_file uri output = + let cmd = + sprintf "scp%s%s %s%s:%s %s" + (if verbose () then "" else " -q") +@@ -49,13 +45,12 @@ let scp_from_remote_to_temporary uri tmpdir filename = + | Some user -> quote user ^ "@") + (quote (server_of_uri uri)) + (quote (path_of_uri uri)) +- (quote localfile) in ++ (quote output) in + if verbose () then + eprintf "%s\n%!" cmd; + if Sys.command cmd <> 0 then + error (f_"could not copy the VMX file from the remote server, \ +- see earlier error messages"); +- localfile ++ see earlier error messages") + + (* Test if [path] exists on the remote server. *) + let remote_file_exists uri path = +diff --git a/input/ssh.mli b/input/ssh.mli +index e9a1a6a8..62e78bd3 100644 +--- a/input/ssh.mli ++++ b/input/ssh.mli +@@ -27,8 +27,7 @@ val port_of_uri : Xml.uri -> int option + is ignored). *) + val remote_file_exists : Xml.uri -> string -> bool + +-(** [scp_from_remote_to_temporary ssh_uri tmpdir filename] ++(** [download_file ssh_uri output] + uses scp to copy the single remote file at [ssh_uri] to +- the local file called [tmpdir/filename]. It returns the +- final path [tmpdir/filename]. *) +-val scp_from_remote_to_temporary : Xml.uri -> string -> string -> string ++ the local file called [output]. *) ++val download_file : Xml.uri -> string -> unit diff --git a/SOURCES/0006-Translated-using-Weblate-Ukrainian.patch b/SOURCES/0006-Translated-using-Weblate-Ukrainian.patch deleted file mode 100644 index db0181a..0000000 --- a/SOURCES/0006-Translated-using-Weblate-Ukrainian.patch +++ /dev/null @@ -1,66 +0,0 @@ -From e8c61da73b62b6acf13543e9421db0b0e2a43a1a Mon Sep 17 00:00:00 2001 -From: Yuri Chornoivan -Date: Sat, 14 Jan 2023 22:20:05 +0100 -Subject: [PATCH] Translated using Weblate (Ukrainian) - -Currently translated at 100.0% (441 of 441 strings) - -Translation: libguestfs/virt-v2v-master -Translate-URL: https://translate.fedoraproject.org/projects/libguestfs/virt-v2v-master/uk/ ---- - po/uk.po | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/po/uk.po b/po/uk.po -index bf21a0ed..f524482a 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: 2023-01-10 14:53+0000\n" --"PO-Revision-Date: 2022-12-24 19:20+0000\n" -+"PO-Revision-Date: 2023-01-14 21:20+0000\n" - "Last-Translator: Yuri Chornoivan \n" - "Language-Team: Ukrainian \n" -@@ -23,8 +23,8 @@ msgstr "" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "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" -+"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.15\n" - - #: input/input_ova.ml:134 common/mltools/tools_utils.ml:235 -@@ -316,12 +316,10 @@ msgid "-o disk: unknown output option ‘-oo %s’" - msgstr "-o disk: невідомий параметр виведення — «-oo %s»" - - #: output/output_kubevirt.ml:56 --#, fuzzy --#| msgid "-o disk: output directory was not specified, use '-os /dir'" - msgid "-o kubevirt: output directory was not specified, use '-os /dir'" - msgstr "" --"-o disk: не вказано каталогу для виведення даних, скористайтеся «-os /" --"каталог»" -+"-o kubevirt: не вказано каталогу для виведення даних, скористайтеся «-os " -+"/каталог»" - - #: output/output_libvirt.ml:115 - msgid "" -@@ -1204,6 +1202,8 @@ msgid "" - "YAML block contains newline character. This should not happen, please " - "report a bug against virt-v2v." - msgstr "" -+"Блок YAML містить символ розриву рядка. Такого не мало трапитися. Будь " -+"ласка, повідомте про цю ваду у virt-v2v." - - #: input/input_vddk.ml:98 - msgid "" diff --git a/SOURCES/0006-virt-v2v-i-vmx-Add-the-input-password-to-vmx_source.patch b/SOURCES/0006-virt-v2v-i-vmx-Add-the-input-password-to-vmx_source.patch new file mode 100644 index 0000000..808a696 --- /dev/null +++ b/SOURCES/0006-virt-v2v-i-vmx-Add-the-input-password-to-vmx_source.patch @@ -0,0 +1,125 @@ +From 60e72acb344e89656f7b13d9e360d05cc983a419 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 15 Jan 2024 16:14:10 +0000 +Subject: [PATCH] virt-v2v: -i vmx: Add the input password to vmx_source + +Since we use the input password in various places in the VMX module, +store the input password in vmx_source. This neutral refactoring +makes later changes simpler. + +Reviewed-by: Laszlo Ersek +--- + input/input_vmx.ml | 13 ++++++------- + input/parse_domain_from_vmx.ml | 12 ++++++------ + input/parse_domain_from_vmx.mli | 7 ++++--- + 3 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/input/input_vmx.ml b/input/input_vmx.ml +index bd20420c..b9cce10f 100644 +--- a/input/input_vmx.ml ++++ b/input/input_vmx.ml +@@ -45,13 +45,17 @@ module VMX = struct + let vmx_source = + match args with + | [arg] -> ++ let input_password = ++ match options.input_password with ++ | None -> Nbdkit_ssh.NoPassword ++ | Some ip -> Nbdkit_ssh.PasswordFile ip in + let input_transport = + match options.input_transport with + | None -> None + | Some `SSH -> Some `SSH + | Some `VDDK -> + error (f_"-i vmx: cannot use -it vddk in this input mode") in +- vmx_source_of_arg input_transport arg ++ vmx_source_of_arg input_password input_transport arg + | _ -> + error (f_"-i vmx: expecting a VMX file or ssh:// URI") in + +@@ -73,7 +77,7 @@ module VMX = struct + On_exit.kill pid + ) filenames + +- | SSH uri -> ++ | SSH (password, uri) -> + List.iteri ( + fun i filename -> + let socket = sprintf "%s/in%d" dir i in +@@ -95,11 +99,6 @@ module VMX = struct + let server = Ssh.server_of_uri uri in + let port = Option.map string_of_int (Ssh.port_of_uri uri) in + let user = uri.Xml.uri_user in +- let password = +- match options.input_password with +- | None -> Nbdkit_ssh.NoPassword +- | Some ip -> Nbdkit_ssh.PasswordFile ip in +- + let cor = dir // "convert" in + let bandwidth = options.bandwidth in + let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ~password +diff --git a/input/parse_domain_from_vmx.ml b/input/parse_domain_from_vmx.ml +index e6500da6..0719738c 100644 +--- a/input/parse_domain_from_vmx.ml ++++ b/input/parse_domain_from_vmx.ml +@@ -29,13 +29,13 @@ open Utils + open Name_from_disk + + type vmx_source = +- | File of string (* local file or NFS *) +- | SSH of Xml.uri (* SSH URI *) ++ | File of string (* local file or NFS *) ++ | SSH of Nbdkit_ssh.password * Xml.uri (* SSH URI *) + + (* The single filename on the command line is intepreted either as + * a local file or a remote SSH URI (only if ‘-it ssh’). + *) +-let vmx_source_of_arg input_transport arg = ++let vmx_source_of_arg input_password input_transport arg = + match input_transport, arg with + | None, arg -> File arg + | Some `SSH, arg -> +@@ -49,7 +49,7 @@ let vmx_source_of_arg input_transport arg = + error (f_"vmx URI remote server name omitted"); + if uri.Xml.uri_path = None || uri.Xml.uri_path = Some "/" then + error (f_"vmx URI path component looks incorrect"); +- SSH uri ++ SSH (input_password, uri) + + let rec find_disks vmx vmx_source = + (* Set the s_disk_id field to an incrementing number. *) +@@ -334,7 +334,7 @@ let parse_domain_from_vmx vmx_source = + let vmx = + match vmx_source with + | File filename -> Parse_vmx.parse_file filename +- | SSH uri -> ++ | SSH (_, uri) -> + let filename = tmpdir // "source.vmx" in + Ssh.download_file uri filename; + Parse_vmx.parse_file filename in +@@ -346,7 +346,7 @@ let parse_domain_from_vmx vmx_source = + warning (f_"no displayName key found in VMX file"); + match vmx_source with + | File filename -> name_from_disk filename +- | SSH uri -> name_from_disk (Ssh.path_of_uri uri) in ++ | SSH (_, uri) -> name_from_disk (Ssh.path_of_uri uri) in + + let genid = + (* See: https://lists.nongnu.org/archive/html/qemu-devel/2018-07/msg02019.html *) +diff --git a/input/parse_domain_from_vmx.mli b/input/parse_domain_from_vmx.mli +index 42f8100e..208797a7 100644 +--- a/input/parse_domain_from_vmx.mli ++++ b/input/parse_domain_from_vmx.mli +@@ -17,8 +17,9 @@ + *) + + type vmx_source = +- | File of string (** local file or NFS *) +- | SSH of Xml.uri (** SSH URI *) ++ | File of string (** local file or NFS *) ++ | SSH of Nbdkit_ssh.password * Xml.uri (** SSH URI *) + +-val vmx_source_of_arg : [`SSH] option -> string -> vmx_source ++val vmx_source_of_arg : Nbdkit_ssh.password -> [`SSH] option -> string -> ++ vmx_source + val parse_domain_from_vmx : vmx_source -> Types.source * string list diff --git a/SOURCES/0007-convert-windows-Remove-extraneous-blank-lines-in-sou.patch b/SOURCES/0007-convert-windows-Remove-extraneous-blank-lines-in-sou.patch deleted file mode 100644 index 942f015..0000000 --- a/SOURCES/0007-convert-windows-Remove-extraneous-blank-lines-in-sou.patch +++ /dev/null @@ -1,34 +0,0 @@ -From fd9694a3a2ea2911335cd3a85558a92b14d946fc Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 16 Jan 2023 12:19:29 +0000 -Subject: [PATCH] convert: windows: Remove extraneous blank lines in source - ---- - convert/convert_windows.ml | 1 - - convert/windows_virtio.ml | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml -index 57a7ff03..b0436fe4 100644 ---- a/convert/convert_windows.ml -+++ b/convert/convert_windows.ml -@@ -476,7 +476,6 @@ let convert (g : G.guestfs) _ inspect _ static_ips = - (sprintf "install-%s.ps1" msi_path) !psh_script; - ) files - -- - and unconfigure_xenpv () = - match xenpv_uninst with - | None -> () (* nothing to be uninstalled *) -diff --git a/convert/windows_virtio.ml b/convert/windows_virtio.ml -index d9fda13f..2ce92ece 100644 ---- a/convert/windows_virtio.ml -+++ b/convert/windows_virtio.ml -@@ -215,7 +215,6 @@ and copy_qemu_ga g inspect = - (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.")) - -- - (* Copy all files from virtio_win directory/ISO located in [srcdir] - * subdirectory and all its subdirectories to the [destdir]. The directory - * hierarchy is not preserved, meaning all files will be directly in [destdir]. diff --git a/SOURCES/0007-virt-v2v-i-vmx-Remove-dependency-of-ssh.ml-on-Xml.ur.patch b/SOURCES/0007-virt-v2v-i-vmx-Remove-dependency-of-ssh.ml-on-Xml.ur.patch new file mode 100644 index 0000000..158574a --- /dev/null +++ b/SOURCES/0007-virt-v2v-i-vmx-Remove-dependency-of-ssh.ml-on-Xml.ur.patch @@ -0,0 +1,205 @@ +From 40730615d2f691bc72777b4cb7356e2177edc1e1 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 15 Jan 2024 14:48:56 +0000 +Subject: [PATCH] virt-v2v: -i vmx: Remove dependency of ssh.ml on Xml.uri + +Xml.uri is a convenient way to pass the multiple ssh fields to +virt-v2v and is still used internally by the -i vmx code. However +don't leak this awkward implementation into the new ssh.ml module. + +Like Nbdkit_ssh, we'll only deal with the explicit (password, port, +server, user, path) fields separately. + +Note after this refactoring: + + - The new Ssh module interface looks broadly similar to the + Nbdkit_ssh interface. + + - vmx_source_of_arg assertions are no longer required inside the new + Ssh module, which was a mild layering violation before. + +Reviewed-by: Laszlo Ersek +--- + input/input_vmx.ml | 21 ++++++++++++++++----- + input/parse_domain_from_vmx.ml | 22 +++++++++++++++++++--- + input/ssh.ml | 32 +++++++++++--------------------- + input/ssh.mli | 21 ++++++++++----------- + 4 files changed, 56 insertions(+), 40 deletions(-) + +diff --git a/input/input_vmx.ml b/input/input_vmx.ml +index b9cce10f..b3426fa2 100644 +--- a/input/input_vmx.ml ++++ b/input/input_vmx.ml +@@ -83,22 +83,33 @@ module VMX = struct + let socket = sprintf "%s/in%d" dir i in + On_exit.unlink socket; + +- let vmx_path = Ssh.path_of_uri uri in ++ let vmx_path = ++ match uri.uri_path with ++ | None -> assert false (* checked by vmx_source_of_arg *) ++ | Some path -> path in + let abs_path = absolute_path_from_other_file vmx_path filename in + let flat_vmdk = PCRE.replace (PCRE.compile "\\.vmdk$") + "-flat.vmdk" abs_path in + ++ let server = ++ match uri.uri_server with ++ | None -> assert false (* checked by vmx_source_of_arg *) ++ | Some server -> server in ++ let port = ++ match uri.uri_port with ++ | i when i <= 0 -> None ++ | i -> Some (string_of_int i) in ++ let user = uri.Xml.uri_user in ++ + (* RHBZ#1774386 *) +- if not (Ssh.remote_file_exists uri flat_vmdk) then ++ if not (Ssh.remote_file_exists ~password ?port ~server ?user ++ flat_vmdk) then + error (f_"This transport does not support guests with snapshots. \ + Either collapse the snapshots for this guest and try \ + the conversion again, or use one of the alternate \ + conversion methods described in \ + virt-v2v-input-vmware(1) section \"NOTES\"."); + +- let server = Ssh.server_of_uri uri in +- let port = Option.map string_of_int (Ssh.port_of_uri uri) in +- let user = uri.Xml.uri_user in + let cor = dir // "convert" in + let bandwidth = options.bandwidth in + let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ~password +diff --git a/input/parse_domain_from_vmx.ml b/input/parse_domain_from_vmx.ml +index 0719738c..99c86b1a 100644 +--- a/input/parse_domain_from_vmx.ml ++++ b/input/parse_domain_from_vmx.ml +@@ -334,9 +334,22 @@ let parse_domain_from_vmx vmx_source = + let vmx = + match vmx_source with + | File filename -> Parse_vmx.parse_file filename +- | SSH (_, uri) -> ++ | SSH (password, uri) -> ++ let server = ++ match uri.uri_server with ++ | None -> assert false (* checked by vmx_source_of_arg *) ++ | Some server -> server in ++ let port = ++ match uri.uri_port with ++ | i when i <= 0 -> None ++ | i -> Some (string_of_int i) in ++ let user = uri.Xml.uri_user in ++ let path = ++ match uri.uri_path with ++ | None -> assert false (* checked by vmx_source_of_arg *) ++ | Some path -> path in + let filename = tmpdir // "source.vmx" in +- Ssh.download_file uri filename; ++ Ssh.download_file ~password ?port ~server ?user path filename; + Parse_vmx.parse_file filename in + + let name = +@@ -346,7 +359,10 @@ let parse_domain_from_vmx vmx_source = + warning (f_"no displayName key found in VMX file"); + match vmx_source with + | File filename -> name_from_disk filename +- | SSH (_, uri) -> name_from_disk (Ssh.path_of_uri uri) in ++ | SSH (_, uri) -> ++ match uri.uri_path with ++ | None -> assert false (* checked by vmx_source_of_arg *) ++ | Some path -> name_from_disk path in + + let genid = + (* See: https://lists.nongnu.org/archive/html/qemu-devel/2018-07/msg02019.html *) +diff --git a/input/ssh.ml b/input/ssh.ml +index 63ffeb12..127e818c 100644 +--- a/input/ssh.ml ++++ b/input/ssh.ml +@@ -22,29 +22,19 @@ open Common_gettext.Gettext + + open Printf + +-(* Return various fields from the URI. The checks in vmx_source_of_arg +- * should ensure that none of these assertions fail. +- *) +-let port_of_uri { Xml.uri_port } = +- match uri_port with i when i <= 0 -> None | i -> Some i +-let server_of_uri { Xml.uri_server } = +- match uri_server with None -> assert false | Some s -> s +-let path_of_uri { Xml.uri_path } = +- match uri_path with None -> assert false | Some p -> p +- + (* 'scp' a remote file into a local file. *) +-let download_file uri output = ++let download_file ~password:_ ?port ~server ?user path output = + let cmd = + sprintf "scp%s%s %s%s:%s %s" + (if verbose () then "" else " -q") +- (match port_of_uri uri with ++ (match port with + | None -> "" +- | Some port -> sprintf " -P %d" port) +- (match uri.Xml.uri_user with ++ | Some port -> sprintf " -P %s" port) ++ (match user with + | None -> "" + | Some user -> quote user ^ "@") +- (quote (server_of_uri uri)) +- (quote (path_of_uri uri)) ++ (quote server) ++ (quote path) + (quote output) in + if verbose () then + eprintf "%s\n%!" cmd; +@@ -53,16 +43,16 @@ let download_file uri output = + see earlier error messages") + + (* Test if [path] exists on the remote server. *) +-let remote_file_exists uri path = ++let remote_file_exists ~password:_ ?port ~server ?user path = + let cmd = + sprintf "ssh%s %s%s test -f %s" +- (match port_of_uri uri with ++ (match port with + | None -> "" +- | Some port -> sprintf " -p %d" port) +- (match uri.Xml.uri_user with ++ | Some port -> sprintf " -p %s" port) ++ (match user with + | None -> "" + | Some user -> quote user ^ "@") +- (quote (server_of_uri uri)) ++ (quote server) + (* Double quoting is necessary for 'ssh', first to protect + * from the local shell, second to protect from the remote + * shell. https://github.com/libguestfs/virt-v2v/issues/35#issuecomment-1741730963 +diff --git a/input/ssh.mli b/input/ssh.mli +index 62e78bd3..1f39cd1b 100644 +--- a/input/ssh.mli ++++ b/input/ssh.mli +@@ -18,16 +18,15 @@ + + (** Wrappers for finding and downloading remote files over ssh. *) + +-val path_of_uri : Xml.uri -> string +-val server_of_uri : Xml.uri -> string +-val port_of_uri : Xml.uri -> int option ++(** [remote_file_exists password ?port server ?user path] ++ checks that [path] exists on the remote server. *) ++val remote_file_exists : password:Nbdkit_ssh.password -> ++ ?port:string -> server:string -> ?user:string -> ++ string -> bool + +-(** [remote_file_exists ssh_uri path] checks that [path] exists +- on the remote server [ssh_uri] (note any path inside [ssh_uri] +- is ignored). *) +-val remote_file_exists : Xml.uri -> string -> bool +- +-(** [download_file ssh_uri output] +- uses scp to copy the single remote file at [ssh_uri] to ++(** [download_file password ?port server ?user path output] ++ uses scp to copy the single remote file at [path] to + the local file called [output]. *) +-val download_file : Xml.uri -> string -> unit ++val download_file : password:Nbdkit_ssh.password -> ++ ?port:string -> server:string -> ?user:string -> string -> ++ string -> unit diff --git a/SOURCES/0008-convert-windows-Document-what-copy_qemu_ga-function-.patch b/SOURCES/0008-convert-windows-Document-what-copy_qemu_ga-function-.patch deleted file mode 100644 index 84d87cd..0000000 --- a/SOURCES/0008-convert-windows-Document-what-copy_qemu_ga-function-.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 9a5c900fdb532d553a78339a6887417dd6de70e5 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 16 Jan 2023 12:22:17 +0000 -Subject: [PATCH] convert: windows: Document what copy_qemu_ga function returns - -Just updates the comment. - -(cherry picked from commit 7499ab10ea387b1dfd6fdd6feb2632b66545a257) ---- - convert/windows_virtio.mli | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/convert/windows_virtio.mli b/convert/windows_virtio.mli -index 73ec95c7..82aad69b 100644 ---- a/convert/windows_virtio.mli -+++ b/convert/windows_virtio.mli -@@ -39,8 +39,11 @@ val install_drivers - devices if we managed to install those, or legacy devices if we didn't. *) - - val copy_qemu_ga : Guestfs.guestfs -> Types.inspect -> string list --(** copy MSIs (idealy just one) with QEMU Guest Agent to Windows guest. The -- MSIs are not installed by this function. *) -+(** copy MSIs (ideally just one) with QEMU Guest Agent to Windows guest. The -+ MSIs are not installed by this function. -+ -+ Returns a list of the copied [*.msi] files (empty list indicates no -+ qemu-ga installer(s) could be located). *) - - (**/**) - diff --git a/SOURCES/0008-input-nbdkit_ssh-Make-retry-filter-optional.patch b/SOURCES/0008-input-nbdkit_ssh-Make-retry-filter-optional.patch new file mode 100644 index 0000000..b1085d0 --- /dev/null +++ b/SOURCES/0008-input-nbdkit_ssh-Make-retry-filter-optional.patch @@ -0,0 +1,55 @@ +From 72c9734050f0235c80ff7d685282a57836a70bd5 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 15 Jan 2024 16:21:34 +0000 +Subject: [PATCH] input/nbdkit_ssh: Make retry filter optional + +This filter retries a request on failure. Add a flag to make this +filter optional, but default to using it if available (so there's no +change to default behaviour). + +The reason we want to make this optional is that the next commit will +want to use nbdkit-ssh-plugin to probe to see if a remote file is +present, and we don't want to retry that probe on failure. + +Reviewed-by: Laszlo Ersek +--- + input/nbdkit_ssh.ml | 6 ++++-- + input/nbdkit_ssh.mli | 1 + + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/input/nbdkit_ssh.ml b/input/nbdkit_ssh.ml +index 3f6da9b6..3b72d3ad 100644 +--- a/input/nbdkit_ssh.ml ++++ b/input/nbdkit_ssh.ml +@@ -44,7 +44,8 @@ let error_unless_nbdkit_min_version config = + error_unless_nbdkit_version_ge config nbdkit_min_version + + (* Create an nbdkit module specialized for reading from SSH sources. *) +-let create_ssh ?bandwidth ?cor ~password ?port ~server ?user path = ++let create_ssh ?bandwidth ?cor ?(retry=true) ++ ~password ?port ~server ?user path = + if not (Nbdkit.is_installed ()) then + error (f_"nbdkit is not installed or not working"); + +@@ -67,7 +68,8 @@ let create_ssh ?bandwidth ?cor ~password ?port ~server ?user path = + (* Retry filter (if it exists) can be used to get around brief + * interruptions in service. It must be closest to the plugin. + *) +- Nbdkit.add_filter_if_available cmd "retry"; ++ if retry then ++ Nbdkit.add_filter_if_available cmd "retry"; + + (* Caching extents speeds up qemu-img, especially its consecutive + * block_status requests with req_one=1. +diff --git a/input/nbdkit_ssh.mli b/input/nbdkit_ssh.mli +index bc798c5a..daa20bb2 100644 +--- a/input/nbdkit_ssh.mli ++++ b/input/nbdkit_ssh.mli +@@ -25,6 +25,7 @@ type password = + + val create_ssh : ?bandwidth:Types.bandwidth -> + ?cor:string -> ++ ?retry:bool -> + password:password -> + ?port:string -> + server:string -> diff --git a/SOURCES/0009-convert-windows-Remove-unused-open-Utils.patch b/SOURCES/0009-convert-windows-Remove-unused-open-Utils.patch deleted file mode 100644 index 788c8c6..0000000 --- a/SOURCES/0009-convert-windows-Remove-unused-open-Utils.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 48f15935cff53836eae4c1c9afb0be8ab4f13bea Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 16 Jan 2023 15:12:16 +0000 -Subject: [PATCH] convert: windows: Remove unused 'open Utils' - -No function from Utils was being used by Windows_virtio, so remove the -unnecessary line. - -(cherry picked from commit 26b9cd1f87f06c31cdf3020e003078737a417889) ---- - convert/windows_virtio.ml | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/convert/windows_virtio.ml b/convert/windows_virtio.ml -index 2ce92ece..6b642d21 100644 ---- a/convert/windows_virtio.ml -+++ b/convert/windows_virtio.ml -@@ -25,7 +25,6 @@ open Common_gettext.Gettext - open Regedit - - open Types --open Utils - - module G = Guestfs - diff --git a/SOURCES/0009-virt-v2v-i-vmx-Replace-external-ssh-scp-with-nbdkit-.patch b/SOURCES/0009-virt-v2v-i-vmx-Replace-external-ssh-scp-with-nbdkit-.patch new file mode 100644 index 0000000..b5ae3ee --- /dev/null +++ b/SOURCES/0009-virt-v2v-i-vmx-Replace-external-ssh-scp-with-nbdkit-.patch @@ -0,0 +1,167 @@ +From fb72e059863a60503b6011b8590c25c3a010a58f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 15 Jan 2024 15:38:30 +0000 +Subject: [PATCH] virt-v2v: -i vmx: Replace external ssh/scp with + nbdkit-ssh-plugin + +If you use a -i vmx ssh filename containing '*' then it will expand +the glob at the remote side. New scp is weird and silently creates a +directory on the local side. For example suppose there's a remote +file literally called "/tmp/test*" (ie. the '*' is part of the +filename) and you thought you could copy that to local using: + + scp 'remote:/tmp/test*' '/tmp/test*' + +scp treats the first parameter (only) as a wildcard and if there are +multiple files matching the wildcard /tmp/test*, will create a local +directory literally called "/tmp/test*/" and put the files into it. +Who expected any of that? + +You might think that double quoting (as we used to use) might work, +but that breaks with spaces and quotes. I guess scp is using +different code paths internally for glob versus everything else. + +The only way to really make this work is to stop using scp entirely +and just use sftp directly. The easiest way to use sftp is to use +nbdkit-ssh-plugin. We already depend on nbdkit-ssh-plugin, nbdcopy +and nbdinfo for other parts of virt-v2v, so might as well use the +whole lot here. + +One advantage of this change is that now the -ip (input password) +parameter actually works in -i vmx -it ssh mode. + +Other approaches that would have been possible: + + - Use the OCaml NBD library instead of nbdcopy/nbdinfo + + - Use 'nbdkit -U - ssh --run ...' + + - Direct binding to libssh. + +See also commit e2af12ba69c4463bb73d30db63290a887cdd41eb +("input: -i vmx: Remove support for openssh scp < 8.8") + +See also commit 22c5b98ab78c734b478c26e14ee62e2a065aaa0c +("-it ssh: Double quote ssh command which tests remote file exists") + +See also https://unix.stackexchange.com/a/587710 + +Reported-by: Ming Xie +Fixes: https://issues.redhat.com/browse/RHEL-21365 +Reviewed-by: Laszlo Ersek +--- + input/ssh.ml | 70 +++++++++++++++++++++++++-------------------------- + input/ssh.mli | 7 ++++-- + 2 files changed, 40 insertions(+), 37 deletions(-) + +diff --git a/input/ssh.ml b/input/ssh.ml +index 127e818c..71ebbf2a 100644 +--- a/input/ssh.ml ++++ b/input/ssh.ml +@@ -18,46 +18,46 @@ + + open Std_utils + open Tools_utils ++open Unix_utils + open Common_gettext.Gettext + + open Printf + +-(* 'scp' a remote file into a local file. *) +-let download_file ~password:_ ?port ~server ?user path output = +- let cmd = +- sprintf "scp%s%s %s%s:%s %s" +- (if verbose () then "" else " -q") +- (match port with +- | None -> "" +- | Some port -> sprintf " -P %s" port) +- (match user with +- | None -> "" +- | Some user -> quote user ^ "@") +- (quote server) +- (quote path) +- (quote output) in +- if verbose () then +- eprintf "%s\n%!" cmd; +- if Sys.command cmd <> 0 then ++let start_nbdkit ~password ?port ~server ?user path = ++ (* Create a random location for the socket used to talk to nbdkit. *) ++ let sockdir = Mkdtemp.temp_dir "v2vssh." in ++ On_exit.rm_rf sockdir; ++ let id = unique () in ++ let socket = sockdir // sprintf "nbdkit%d.sock" id in ++ ++ (* Note: Disabling the retry filter helps in the missing file case, ++ * otherwise nbdkit takes ages to time out. We're not expecting that ++ * the VMX file is large, so using this filter isn't necessary. ++ *) ++ let nbdkit = ++ Nbdkit_ssh.create_ssh ~retry:false ~password ~server ?port ?user path in ++ Nbdkit.set_readonly nbdkit true; ++ let _, pid = Nbdkit.run_unix socket nbdkit in ++ On_exit.kill pid; ++ ++ (* Return the URI of nbdkit. *) ++ "nbd+unix://?socket=" ^ socket ++ ++(* Download a remote file into a local file. *) ++let download_file ~password ?port ~server ?user path output = ++ let uri = start_nbdkit ~password ?port ~server ?user path in ++ ++ let cmd = [ "nbdcopy"; uri; output ] in ++ if run_command cmd <> 0 then + error (f_"could not copy the VMX file from the remote server, \ + see earlier error messages") + + (* Test if [path] exists on the remote server. *) +-let remote_file_exists ~password:_ ?port ~server ?user path = +- let cmd = +- sprintf "ssh%s %s%s test -f %s" +- (match port with +- | None -> "" +- | Some port -> sprintf " -p %s" port) +- (match user with +- | None -> "" +- | Some user -> quote user ^ "@") +- (quote server) +- (* Double quoting is necessary for 'ssh', first to protect +- * from the local shell, second to protect from the remote +- * shell. https://github.com/libguestfs/virt-v2v/issues/35#issuecomment-1741730963 +- *) +- (quote (quote path)) in +- if verbose () then +- eprintf "%s\n%!" cmd; +- Sys.command cmd = 0 ++let remote_file_exists ~password ?port ~server ?user path = ++ let uri = start_nbdkit ~password ?port ~server ?user path in ++ ++ (* Testing for remote size using nbdinfo should be sufficient to ++ * prove the remote file exists. ++ *) ++ let cmd = [ "nbdinfo"; "--size"; uri ] in ++ run_command cmd = 0 +diff --git a/input/ssh.mli b/input/ssh.mli +index 1f39cd1b..40843024 100644 +--- a/input/ssh.mli ++++ b/input/ssh.mli +@@ -16,7 +16,10 @@ + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + *) + +-(** Wrappers for finding and downloading remote files over ssh. *) ++(** Wrappers for finding and downloading remote files over ssh. ++ ++ Internally this uses nbdkit-ssh-plugin (which uses sftp) as ++ that is much more predictable than running external ssh / scp. *) + + (** [remote_file_exists password ?port server ?user path] + checks that [path] exists on the remote server. *) +@@ -25,7 +28,7 @@ val remote_file_exists : password:Nbdkit_ssh.password -> + string -> bool + + (** [download_file password ?port server ?user path output] +- uses scp to copy the single remote file at [path] to ++ downloads the single remote file at [path] to + the local file called [output]. *) + val download_file : password:Nbdkit_ssh.password -> + ?port:string -> server:string -> ?user:string -> string -> diff --git a/SOURCES/0010-input-nbdkit_ssh-Make-password-parameter-optional.patch b/SOURCES/0010-input-nbdkit_ssh-Make-password-parameter-optional.patch new file mode 100644 index 0000000..4ba7f0e --- /dev/null +++ b/SOURCES/0010-input-nbdkit_ssh-Make-password-parameter-optional.patch @@ -0,0 +1,255 @@ +From a99d9f2afee17688ec07e2ea0b130341a0cabce2 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 16 Jan 2024 10:27:30 +0000 +Subject: [PATCH] input/nbdkit_ssh: Make password parameter optional + +Instead of storing an explicit NoPassword case, make the password +parameter optional and encode NoPassword as None. This is simple +refactoring. +--- + input/input_vmx.ml | 8 ++++---- + input/input_xen_ssh.ml | 6 +++--- + input/nbdkit_ssh.ml | 13 ++++++------- + input/nbdkit_ssh.mli | 9 ++++----- + input/parse_domain_from_vmx.ml | 6 +++--- + input/parse_domain_from_vmx.mli | 8 ++++---- + input/ssh.ml | 12 ++++++------ + input/ssh.mli | 8 ++++---- + 8 files changed, 34 insertions(+), 36 deletions(-) + +diff --git a/input/input_vmx.ml b/input/input_vmx.ml +index b3426fa2..f81a9674 100644 +--- a/input/input_vmx.ml ++++ b/input/input_vmx.ml +@@ -47,8 +47,8 @@ module VMX = struct + | [arg] -> + let input_password = + match options.input_password with +- | None -> Nbdkit_ssh.NoPassword +- | Some ip -> Nbdkit_ssh.PasswordFile ip in ++ | None -> None ++ | Some ip -> Some (Nbdkit_ssh.PasswordFile ip) in + let input_transport = + match options.input_transport with + | None -> None +@@ -102,7 +102,7 @@ module VMX = struct + let user = uri.Xml.uri_user in + + (* RHBZ#1774386 *) +- if not (Ssh.remote_file_exists ~password ?port ~server ?user ++ if not (Ssh.remote_file_exists ?password ?port ~server ?user + flat_vmdk) then + error (f_"This transport does not support guests with snapshots. \ + Either collapse the snapshots for this guest and try \ +@@ -112,7 +112,7 @@ module VMX = struct + + let cor = dir // "convert" in + let bandwidth = options.bandwidth in +- let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ~password ++ let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ?password + ~server ?port ?user flat_vmdk in + let _, pid = Nbdkit.run_unix socket nbdkit in + On_exit.kill pid +diff --git a/input/input_xen_ssh.ml b/input/input_xen_ssh.ml +index b583bd55..c4235a4b 100644 +--- a/input/input_xen_ssh.ml ++++ b/input/input_xen_ssh.ml +@@ -96,8 +96,8 @@ module XenSSH = struct + + let password = + match options.input_password with +- | None -> Nbdkit_ssh.NoPassword +- | Some ip -> Nbdkit_ssh.PasswordFile ip in ++ | None -> None ++ | Some ip -> Some (Nbdkit_ssh.PasswordFile ip) in + + (* Create an nbdkit instance for each disk. *) + List.iteri ( +@@ -122,7 +122,7 @@ module XenSSH = struct + | LocalFile path -> + let cor = dir // "convert" in + let bandwidth = options.bandwidth in +- let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ~password ++ 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 +diff --git a/input/nbdkit_ssh.ml b/input/nbdkit_ssh.ml +index 3b72d3ad..bc96df13 100644 +--- a/input/nbdkit_ssh.ml ++++ b/input/nbdkit_ssh.ml +@@ -28,9 +28,8 @@ open Utils + let nbdkit_min_version = (1, 12, 0) + + type password = +-| NoPassword (* no password option at all *) +-| AskForPassword (* password=- *) +-| PasswordFile of string (* password=+file *) ++ | AskForPassword ++ | PasswordFile of string + + let error_unless_nbdkit_version_ge config min_version = + let version = Nbdkit.version config in +@@ -45,7 +44,7 @@ let error_unless_nbdkit_min_version config = + + (* Create an nbdkit module specialized for reading from SSH sources. *) + let create_ssh ?bandwidth ?cor ?(retry=true) +- ~password ?port ~server ?user path = ++ ?password ?port ~server ?user path = + if not (Nbdkit.is_installed ()) then + error (f_"nbdkit is not installed or not working"); + +@@ -108,8 +107,8 @@ let create_ssh ?bandwidth ?cor ?(retry=true) + + (* Handle the password parameter specially. *) + (match password with +- | NoPassword -> () +- | AskForPassword -> ++ | None -> () ++ | Some AskForPassword -> + (* Because we will start nbdkit in the background and then wait + * for 30 seconds for it to start up, we cannot use the + * password=- feature of nbdkit to read the password +@@ -130,7 +129,7 @@ let create_ssh ?bandwidth ?cor ?(retry=true) + On_exit.unlink password_file; + with_open_out password_file (fun chan -> output_string chan password); + Nbdkit.add_arg cmd "password" ("+" ^ password_file) +- | PasswordFile password_file -> ++ | Some (PasswordFile password_file) -> + Nbdkit.add_arg cmd "password" ("+" ^ password_file) + ); + +diff --git a/input/nbdkit_ssh.mli b/input/nbdkit_ssh.mli +index daa20bb2..8ea8dea4 100644 +--- a/input/nbdkit_ssh.mli ++++ b/input/nbdkit_ssh.mli +@@ -18,15 +18,14 @@ + + (** nbdkit when used as a source. *) + +-type password = +-| NoPassword +-| AskForPassword +-| PasswordFile of string ++type password = (** Use [None] for no password *) ++ | AskForPassword (** [password=-] *) ++ | PasswordFile of string (** [password=+file] *) + + val create_ssh : ?bandwidth:Types.bandwidth -> + ?cor:string -> + ?retry:bool -> +- password:password -> ++ ?password:password -> + ?port:string -> + server:string -> + ?user:string -> +diff --git a/input/parse_domain_from_vmx.ml b/input/parse_domain_from_vmx.ml +index 99c86b1a..eeac6597 100644 +--- a/input/parse_domain_from_vmx.ml ++++ b/input/parse_domain_from_vmx.ml +@@ -29,8 +29,8 @@ open Utils + open Name_from_disk + + type vmx_source = +- | File of string (* local file or NFS *) +- | SSH of Nbdkit_ssh.password * Xml.uri (* SSH URI *) ++ | File of string (* local file or NFS *) ++ | SSH of Nbdkit_ssh.password option * Xml.uri (* SSH URI *) + + (* The single filename on the command line is intepreted either as + * a local file or a remote SSH URI (only if ‘-it ssh’). +@@ -349,7 +349,7 @@ let parse_domain_from_vmx vmx_source = + | None -> assert false (* checked by vmx_source_of_arg *) + | Some path -> path in + let filename = tmpdir // "source.vmx" in +- Ssh.download_file ~password ?port ~server ?user path filename; ++ Ssh.download_file ?password ?port ~server ?user path filename; + Parse_vmx.parse_file filename in + + let name = +diff --git a/input/parse_domain_from_vmx.mli b/input/parse_domain_from_vmx.mli +index 208797a7..e26a1035 100644 +--- a/input/parse_domain_from_vmx.mli ++++ b/input/parse_domain_from_vmx.mli +@@ -17,9 +17,9 @@ + *) + + type vmx_source = +- | File of string (** local file or NFS *) +- | SSH of Nbdkit_ssh.password * Xml.uri (** SSH URI *) ++ | File of string (** local file or NFS *) ++ | SSH of Nbdkit_ssh.password option * Xml.uri (** SSH URI *) + +-val vmx_source_of_arg : Nbdkit_ssh.password -> [`SSH] option -> string -> +- vmx_source ++val vmx_source_of_arg : Nbdkit_ssh.password option -> [`SSH] option -> ++ string -> vmx_source + val parse_domain_from_vmx : vmx_source -> Types.source * string list +diff --git a/input/ssh.ml b/input/ssh.ml +index 71ebbf2a..10c61bbf 100644 +--- a/input/ssh.ml ++++ b/input/ssh.ml +@@ -23,7 +23,7 @@ open Common_gettext.Gettext + + open Printf + +-let start_nbdkit ~password ?port ~server ?user path = ++let start_nbdkit ?password ?port ~server ?user path = + (* Create a random location for the socket used to talk to nbdkit. *) + let sockdir = Mkdtemp.temp_dir "v2vssh." in + On_exit.rm_rf sockdir; +@@ -35,7 +35,7 @@ let start_nbdkit ~password ?port ~server ?user path = + * the VMX file is large, so using this filter isn't necessary. + *) + let nbdkit = +- Nbdkit_ssh.create_ssh ~retry:false ~password ~server ?port ?user path in ++ Nbdkit_ssh.create_ssh ~retry:false ?password ~server ?port ?user path in + Nbdkit.set_readonly nbdkit true; + let _, pid = Nbdkit.run_unix socket nbdkit in + On_exit.kill pid; +@@ -44,8 +44,8 @@ let start_nbdkit ~password ?port ~server ?user path = + "nbd+unix://?socket=" ^ socket + + (* Download a remote file into a local file. *) +-let download_file ~password ?port ~server ?user path output = +- let uri = start_nbdkit ~password ?port ~server ?user path in ++let download_file ?password ?port ~server ?user path output = ++ let uri = start_nbdkit ?password ?port ~server ?user path in + + let cmd = [ "nbdcopy"; uri; output ] in + if run_command cmd <> 0 then +@@ -53,8 +53,8 @@ let download_file ~password ?port ~server ?user path output = + see earlier error messages") + + (* Test if [path] exists on the remote server. *) +-let remote_file_exists ~password ?port ~server ?user path = +- let uri = start_nbdkit ~password ?port ~server ?user path in ++let remote_file_exists ?password ?port ~server ?user path = ++ let uri = start_nbdkit ?password ?port ~server ?user path in + + (* Testing for remote size using nbdinfo should be sufficient to + * prove the remote file exists. +diff --git a/input/ssh.mli b/input/ssh.mli +index 40843024..6d9f1370 100644 +--- a/input/ssh.mli ++++ b/input/ssh.mli +@@ -21,15 +21,15 @@ + Internally this uses nbdkit-ssh-plugin (which uses sftp) as + that is much more predictable than running external ssh / scp. *) + +-(** [remote_file_exists password ?port server ?user path] ++(** [remote_file_exists ?password ?port server ?user path] + checks that [path] exists on the remote server. *) +-val remote_file_exists : password:Nbdkit_ssh.password -> ++val remote_file_exists : ?password:Nbdkit_ssh.password -> + ?port:string -> server:string -> ?user:string -> + string -> bool + +-(** [download_file password ?port server ?user path output] ++(** [download_file ?password ?port server ?user path output] + downloads the single remote file at [path] to + the local file called [output]. *) +-val download_file : password:Nbdkit_ssh.password -> ++val download_file : ?password:Nbdkit_ssh.password -> + ?port:string -> server:string -> ?user:string -> string -> + string -> unit diff --git a/SOURCES/0010-o-kubevirt-Fix-mistake-in-error-message.patch b/SOURCES/0010-o-kubevirt-Fix-mistake-in-error-message.patch deleted file mode 100644 index 32af1f9..0000000 --- a/SOURCES/0010-o-kubevirt-Fix-mistake-in-error-message.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4623b2aab891fdbeda0486ad00f1fa2a7f5533fe Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Thu, 19 Jan 2023 08:51:30 +0000 -Subject: [PATCH] -o kubevirt: Fix mistake in error message - -The error message was copied from output_local.ml: - -virt-v2v: error: -o local: -op option cannot be used in this output mode - -Reported-by: Xiaodai Wang -(cherry picked from commit be322ed49b1131e30a0b70f16d31fd29fca32b81) ---- - output/output_kubevirt.ml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/output/output_kubevirt.ml b/output/output_kubevirt.ml -index 63ee8197..0a74dbbe 100644 ---- a/output/output_kubevirt.ml -+++ b/output/output_kubevirt.ml -@@ -47,7 +47,7 @@ module Kubevirt = struct - if options.output_options <> [] then - error (f_"no -oo (output options) are allowed here"); - if options.output_password <> None then -- error_option_cannot_be_used_in_output_mode "local" "-op"; -+ error_option_cannot_be_used_in_output_mode "kubevirt" "-op"; - - (* -os must be set to a directory. *) - let output_storage = diff --git a/SOURCES/0011-input-ssh-Rearrange-parameters-specifying-ssh-server.patch b/SOURCES/0011-input-ssh-Rearrange-parameters-specifying-ssh-server.patch new file mode 100644 index 0000000..ee2dda3 --- /dev/null +++ b/SOURCES/0011-input-ssh-Rearrange-parameters-specifying-ssh-server.patch @@ -0,0 +1,104 @@ +From 4f0758a95a4b32a5c837cf86d2fa4442d3e136ec Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 16 Jan 2024 10:31:50 +0000 +Subject: [PATCH] input/ssh: Rearrange parameters specifying ssh server + +--- + input/nbdkit_ssh.ml | 2 +- + input/nbdkit_ssh.mli | 4 ++-- + input/ssh.ml | 10 +++++----- + input/ssh.mli | 13 +++++++------ + 4 files changed, 15 insertions(+), 14 deletions(-) + +diff --git a/input/nbdkit_ssh.ml b/input/nbdkit_ssh.ml +index bc96df13..ae93e4e8 100644 +--- a/input/nbdkit_ssh.ml ++++ b/input/nbdkit_ssh.ml +@@ -44,7 +44,7 @@ let error_unless_nbdkit_min_version config = + + (* Create an nbdkit module specialized for reading from SSH sources. *) + let create_ssh ?bandwidth ?cor ?(retry=true) +- ?password ?port ~server ?user path = ++ ~server ?port ?user ?password path = + if not (Nbdkit.is_installed ()) then + error (f_"nbdkit is not installed or not working"); + +diff --git a/input/nbdkit_ssh.mli b/input/nbdkit_ssh.mli +index 8ea8dea4..c26f539a 100644 +--- a/input/nbdkit_ssh.mli ++++ b/input/nbdkit_ssh.mli +@@ -25,10 +25,10 @@ type password = (** Use [None] for no password *) + val create_ssh : ?bandwidth:Types.bandwidth -> + ?cor:string -> + ?retry:bool -> +- ?password:password -> +- ?port:string -> + server:string -> ++ ?port:string -> + ?user:string -> ++ ?password:password -> + string -> Nbdkit.cmd + (** Create a nbdkit object using the SSH plugin. The required + string parameter is the remote path. +diff --git a/input/ssh.ml b/input/ssh.ml +index 10c61bbf..d3b6dc0c 100644 +--- a/input/ssh.ml ++++ b/input/ssh.ml +@@ -23,7 +23,7 @@ open Common_gettext.Gettext + + open Printf + +-let start_nbdkit ?password ?port ~server ?user path = ++let start_nbdkit ~server ?port ?user ?password path = + (* Create a random location for the socket used to talk to nbdkit. *) + let sockdir = Mkdtemp.temp_dir "v2vssh." in + On_exit.rm_rf sockdir; +@@ -44,8 +44,8 @@ let start_nbdkit ?password ?port ~server ?user path = + "nbd+unix://?socket=" ^ socket + + (* Download a remote file into a local file. *) +-let download_file ?password ?port ~server ?user path output = +- let uri = start_nbdkit ?password ?port ~server ?user path in ++let download_file ~server ?port ?user ?password path output = ++ let uri = start_nbdkit ~server ?port ?user ?password path in + + let cmd = [ "nbdcopy"; uri; output ] in + if run_command cmd <> 0 then +@@ -53,8 +53,8 @@ let download_file ?password ?port ~server ?user path output = + see earlier error messages") + + (* Test if [path] exists on the remote server. *) +-let remote_file_exists ?password ?port ~server ?user path = +- let uri = start_nbdkit ?password ?port ~server ?user path in ++let remote_file_exists ~server ?port ?user ?password path = ++ let uri = start_nbdkit ~server ?port ?user ?password path in + + (* Testing for remote size using nbdinfo should be sufficient to + * prove the remote file exists. +diff --git a/input/ssh.mli b/input/ssh.mli +index 6d9f1370..ebce46ff 100644 +--- a/input/ssh.mli ++++ b/input/ssh.mli +@@ -21,15 +21,16 @@ + Internally this uses nbdkit-ssh-plugin (which uses sftp) as + that is much more predictable than running external ssh / scp. *) + +-(** [remote_file_exists ?password ?port server ?user path] ++(** [remote_file_exists server ?port ?user ?password path] + checks that [path] exists on the remote server. *) +-val remote_file_exists : ?password:Nbdkit_ssh.password -> +- ?port:string -> server:string -> ?user:string -> ++val remote_file_exists : server:string -> ?port:string -> ++ ?user:string -> ?password:Nbdkit_ssh.password -> + string -> bool + +-(** [download_file ?password ?port server ?user path output] ++(** [download_file server ?port ?user ?password path output] + downloads the single remote file at [path] to + the local file called [output]. *) +-val download_file : ?password:Nbdkit_ssh.password -> +- ?port:string -> server:string -> ?user:string -> string -> ++val download_file : server:string -> ?port:string -> ++ ?user:string -> ?password:Nbdkit_ssh.password -> ++ string -> + string -> unit diff --git a/SOURCES/0011-o-kubevirt-Move-cpu-element-under-domain.patch b/SOURCES/0011-o-kubevirt-Move-cpu-element-under-domain.patch deleted file mode 100644 index a92a32c..0000000 --- a/SOURCES/0011-o-kubevirt-Move-cpu-element-under-domain.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 6b7ef3efe748a72edad0faa508e91b340038a586 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Fri, 20 Jan 2023 09:11:52 +0000 -Subject: [PATCH] -o kubevirt: Move "cpu" element under "domain" - -Apparently this element doesn't go in the obvious place (under -"resources", next to memory), but in a whole new section under "cpu", -which makes no logical sense but here we are. Also verified this -against Kubevirt examples/vm-template-fedora.yaml - -Reported-by: Ming Xie -Fixes: commit bfa62b4683d312fc2fa9bb3c08963fc4846831b9 -(cherry picked from commit 8db50a85f0363d90918edd1af4fc20ddc245b421) ---- - output/create_kubevirt_yaml.ml | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/output/create_kubevirt_yaml.ml b/output/create_kubevirt_yaml.ml -index 205e9be3..689555e4 100644 ---- a/output/create_kubevirt_yaml.ml -+++ b/output/create_kubevirt_yaml.ml -@@ -65,13 +65,13 @@ let create_kubevirt_yaml source inspect - let memory_str = sprintf "%LdMi" (source.s_memory /^ 1024_L /^ 1024_L) in - List.push_back resources ("requests", Assoc ["memory", String memory_str]); - -- (* # vCPUs. XXX vendor, model, topology *) -- List.push_back resources ("cpu", Assoc ["cores", Int source.s_vcpu]); -- - (* Machine features. *) - let features = List.map (fun name -> name, List []) source.s_features in - List.push_back resources ("features", Assoc features); - -+ (* # vCPUs. XXX vendor, model, topology *) -+ let cpu = "cpu", Assoc ["cores", Int source.s_vcpu] in -+ - (* XXX firmware, display, sound *) - - (* XXX guestcaps: rng, balloon, vsock, virtio 1.0 *) -@@ -109,6 +109,7 @@ let create_kubevirt_yaml source inspect - if !devices <> [] then - List.push_back domain ("devices", Assoc !devices); - List.push_back domain ("resources", Assoc !resources); -+ List.push_back domain cpu; - - let spec = ref [] in - List.push_back spec ("domain", Assoc !domain); diff --git a/SOURCES/0012-docs-Remove-paragraph-about-ip-passwords-and-ssh-scp.patch b/SOURCES/0012-docs-Remove-paragraph-about-ip-passwords-and-ssh-scp.patch new file mode 100644 index 0000000..f107094 --- /dev/null +++ b/SOURCES/0012-docs-Remove-paragraph-about-ip-passwords-and-ssh-scp.patch @@ -0,0 +1,54 @@ +From 67fcf66904c7f1f6da858eba35e95dad670427c0 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Wed, 17 Jan 2024 14:16:10 +0000 +Subject: [PATCH] docs: Remove paragraph about -ip passwords and ssh/scp + +The documentation suggested (correctly) that the -ip option did not +cover all cases where we make an ssh connection to either VMware or +Xen. However with the recent change where we use nbdkit-ssh-plugin in +preference to ssh/scp (commit fb72e05986, "virt-v2v: -i vmx: Replace +external ssh/scp with nbdkit-ssh-plugin") this should no longer be +true for VMware. And I don't think it was true for Xen for a while. + +Therefore remove this paragraph in the documentation (in two places). + +See-also: https://bugzilla.redhat.com/show_bug.cgi?id=1854275 +See-also: https://lists.libguestfs.org/archives/list/guestfs@lists.libguestfs.org/thread/CKBEYJHUZWLDUUDWAJM2JU6QIKZGTD6F/ +Suggested-by: Laszlo Ersek +--- + docs/virt-v2v-input-vmware.pod | 5 ----- + docs/virt-v2v-input-xen.pod | 5 ----- + 2 files changed, 10 deletions(-) + +diff --git a/docs/virt-v2v-input-vmware.pod b/docs/virt-v2v-input-vmware.pod +index 48849f88..fe59222a 100644 +--- a/docs/virt-v2v-input-vmware.pod ++++ b/docs/virt-v2v-input-vmware.pod +@@ -155,11 +155,6 @@ virt-v2v server to the ESXi hypervisor. For example: + $ ssh root@esxi.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. +- + =head3 VMX: Construct the SSH URI + + When using the SSH input transport you must specify a remote +diff --git a/docs/virt-v2v-input-xen.pod b/docs/virt-v2v-input-xen.pod +index 4a0544f8..38dc8f7b 100644 +--- a/docs/virt-v2v-input-xen.pod ++++ b/docs/virt-v2v-input-xen.pod +@@ -32,11 +32,6 @@ 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. +- + 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 stanza to your F<~/.ssh/config>: diff --git a/SOURCES/0012-o-kubevirt-Error-on-invalid-output-guest-names.patch b/SOURCES/0012-o-kubevirt-Error-on-invalid-output-guest-names.patch deleted file mode 100644 index 71e3d8e..0000000 --- a/SOURCES/0012-o-kubevirt-Error-on-invalid-output-guest-names.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 8009825c396358137576af522acc0b6b20243bac Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Fri, 20 Jan 2023 09:49:04 +0000 -Subject: [PATCH] -o kubevirt: Error on invalid output guest names - -Kubevirt supports something like RFC 1123 names (without the length -restriction). Helpfully it prints the regexp that it uses the -validate the names, so just use the same regexp. - -Note that virt-v2v never renames guests (since that would add -unpredictability for automation). You must use the -on option to -rename the guest if the name is wrong. Hence this is an error, not a -warning or an attempt to rename the guest. - -Reported-by: Ming Xie -Fixes: commit bfa62b4683d312fc2fa9bb3c08963fc4846831b9 -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2162332 -(cherry picked from commit 8a9c914544a49bed13eb5baf42290f835bdee7b5) ---- - output/output_kubevirt.ml | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/output/output_kubevirt.ml b/output/output_kubevirt.ml -index 0a74dbbe..00e6a8a5 100644 ---- a/output/output_kubevirt.ml -+++ b/output/output_kubevirt.ml -@@ -29,6 +29,11 @@ open Utils - open Output - open Create_kubevirt_yaml - -+(* Valid output names for Kubevirt (RHBZ#2162332). *) -+let rfc1123_re = -+ PCRE.compile ~anchored:true -+ "[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*" -+ - module Kubevirt = struct - type poptions = output_allocation * string * string * string - -@@ -60,6 +65,12 @@ module Kubevirt = struct - - let output_name = Option.default source.s_name options.output_name in - -+ if not (PCRE.matches rfc1123_re output_name) then -+ error (f_"-o kubevirt: the guest name must contain only lowercase \ -+ alphanumeric characters, '-' or '.', and must start and \ -+ end with an alphanumeric character. Rerun virt-v2v with \ -+ the '-on name' option to rename it."); -+ - options.output_alloc, options.output_format, output_name, output_storage - - let setup dir options source = diff --git a/SOURCES/0013-Split-long-lines-in-messages.patch b/SOURCES/0013-Split-long-lines-in-messages.patch deleted file mode 100644 index 1ace05b..0000000 --- a/SOURCES/0013-Split-long-lines-in-messages.patch +++ /dev/null @@ -1,1449 +0,0 @@ -From bcd60820de1256ef4c36ced54efa1243902411f7 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Fri, 20 Jan 2023 09:58:10 +0000 -Subject: [PATCH] Split long lines in messages - -This commit splits up any long lines found in errors, warnings or -other messages. OCaml ignores whitespace following "\" within a -string, eg: - - "long string \ - more stuff" - -is parsed as: - - "long string more stuff" - -Thanks: Laszlo Ersek, for working out the OCaml syntax for this -(cherry picked from commit d2b01e487ff4ef56d139a5e0f22efd9b2ed9b64c) ---- - convert/convert.ml | 11 ++++++--- - convert/inspect_source.ml | 42 ++++++++++++++++++++++++++------ - convert/target_bus_assignment.ml | 8 +++++- - in-place/in_place.ml | 16 +++++++++--- - input/OVA.ml | 14 ++++++++--- - input/OVF.ml | 10 +++++--- - input/input_disk.ml | 6 +++-- - input/input_libvirt.ml | 9 ++++--- - input/input_ova.ml | 9 ++++--- - input/input_vcenter_https.ml | 15 ++++++++---- - input/input_vddk.ml | 16 +++++++++--- - input/input_xen_ssh.ml | 9 ++++--- - input/nbdkit_vddk.ml | 3 ++- - input/parse_domain_from_vmx.ml | 3 ++- - input/parse_libvirt_xml.ml | 28 ++++++++++++++------- - input/vCenter.ml | 7 ++++-- - inspector/inspector.ml | 26 ++++++++++++++------ - lib/create_ovf.ml | 16 +++++++++--- - lib/libvirt_utils.ml | 12 ++++++--- - lib/networks.ml | 15 ++++++++---- - lib/types.ml | 3 ++- - lib/utils.ml | 7 ++++-- - output/create_libvirt_xml.ml | 4 ++- - output/output.ml | 3 ++- - output/output_glance.ml | 5 +++- - output/output_kubevirt.ml | 6 +++-- - output/output_libvirt.ml | 20 ++++++++++++--- - output/output_null.ml | 3 ++- - output/output_openstack.ml | 24 ++++++++++++------ - output/output_qemu.ml | 3 ++- - output/output_rhv.ml | 36 +++++++++++++++++++++------ - output/output_rhv_upload.ml | 39 ++++++++++++++++++++--------- - output/output_vdsm.ml | 16 ++++++++---- - v2v/v2v.ml | 26 ++++++++++++++------ - 34 files changed, 343 insertions(+), 127 deletions(-) - -diff --git a/convert/convert.ml b/convert/convert.ml -index 8d62f6d4..d0d5b773 100644 ---- a/convert/convert.ml -+++ b/convert/convert.ml -@@ -181,12 +181,14 @@ and check_guest_free_space inspect mpstats = - let needed_bytes = Int64.of_int needed_megabytes *^ 1024L *^ 1024L in - if free_bytes < needed_bytes then ( - let mb i = Int64.to_float i /. 1024. /. 1024. in -- error (f_"not enough free space for conversion on filesystem ‘%s’. %.1f MB free < %d MB needed") -+ error (f_"not enough free space for conversion on filesystem ‘%s’. \ -+ %.1f MB free < %d MB needed") - mp_path (mb free_bytes) needed_megabytes - ); - (* Not all the filesystems have inode counts. *) - if files > 0L && ffree < needed_inodes then -- error (f_"not enough available inodes for conversion on filesystem ‘%s’. %Ld inodes available < %Ld inodes needed") -+ error (f_"not enough available inodes for conversion on \ -+ filesystem ‘%s’. %Ld inodes available < %Ld inodes needed") - mp_path ffree needed_inodes - ) mpstats - -@@ -210,7 +212,10 @@ and do_fstrim g inspect = - if mounted then ( - try g#fstrim "/" - with G.Error msg -> -- warning (f_"fstrim on guest filesystem %s failed. Usually you can ignore this message. To find out more read \"Trimming\" in virt-v2v(1).\n\nOriginal message: %s") dev msg -+ warning (f_"fstrim on guest filesystem %s failed. Usually you \ -+ can ignore this message. To find out more read \ -+ \"Trimming\" in virt-v2v(1).\n\n\ -+ Original message: %s") dev msg - ) - ) fses - -diff --git a/convert/inspect_source.ml b/convert/inspect_source.ml -index a0d9f148..9a6fdab7 100644 ---- a/convert/inspect_source.ml -+++ b/convert/inspect_source.ml -@@ -45,8 +45,13 @@ let rec inspect_source root_choice g = - (try g#mount dev mp - with G.Error msg -> - if mp = "/" then ( (* RHBZ#1145995 *) -- if String.find msg "Windows" >= 0 && String.find msg "NTFS partition is in an unsafe state" >= 0 then -- error (f_"unable to mount the disk image for writing. This has probably happened because Windows Hibernation or Fast Restart is being used in this guest. You have to disable this (in the guest) in order to use virt-v2v.\n\nOriginal error message: %s") msg -+ if String.find msg "Windows" >= 0 && -+ String.find msg "NTFS partition is in an unsafe state" >= 0 then -+ error (f_"unable to mount the disk image for writing. This has \ -+ probably happened because Windows Hibernation or \ -+ Fast Restart is being used in this guest. You have \ -+ to disable this (in the guest) in order to use \ -+ virt-v2v.\n\nOriginal error message: %s") msg - else - error "%s" msg - ) -@@ -63,7 +68,12 @@ let rec inspect_source root_choice g = - (try g#touch file - with G.Error msg -> - if g#last_errno () = G.Errno.errno_EROFS then -- error (f_"filesystem was mounted read-only, even though we asked for it to be mounted read-write. This usually means that the filesystem was not cleanly unmounted. Possible causes include trying to convert a guest which is running, or using Windows Hibernation or Fast Restart.\n\nOriginal error message: %s") msg -+ error (f_"filesystem was mounted read-only, even though we \ -+ asked for it to be mounted read-write. This usually \ -+ means that the filesystem was not cleanly unmounted. \ -+ Possible causes include trying to convert a guest \ -+ which is running, or using Windows Hibernation or \ -+ Fast Restart.\n\nOriginal error message: %s") msg - else - error (f_"could not write to the guest filesystem: %s") msg - ); -@@ -128,7 +138,12 @@ let rec inspect_source root_choice g = - - and choose_root root_choice g = function - | [] -> -- error (f_"inspection could not detect the source guest (or physical machine).\n\nAssuming that you are running virt-v2v/virt-p2v on a source which is supported (and not, for example, a blank disk), then this should not happen.\n\nNo root device found in this operating system image."); -+ error (f_"inspection could not detect the source guest \ -+ (or physical machine).\n\nAssuming that you are \ -+ running virt-v2v/virt-p2v on a source which is \ -+ supported (and not, for example, a blank disk), \ -+ then this should not happen.\n\nNo root device \ -+ found in this operating system image."); - | [root] -> root (* only one root, so return it *) - | roots -> - (* If there are multiple roots, use the [--root] option supplied -@@ -138,7 +153,9 @@ and choose_root root_choice g = function - | AskRoot -> - (* List out the roots and ask the user to choose. *) - printf "\n***\n"; -- printf (f_"Dual- or multi-boot operating system detected. Choose the root filesystem\nthat contains the main operating system from the list below:\n"); -+ printf (f_"Dual- or multi-boot operating system detected. \ -+ Choose the root filesystem\nthat contains the main \ -+ operating system from the list below:\n"); - printf "\n"; - List.iteri ( - fun i root -> -@@ -165,7 +182,9 @@ and choose_root root_choice g = function - List.nth roots (!i - 1) - - | SingleRoot -> -- error (f_"multi-boot operating systems are not supported by virt-v2v. Use the --root option to change how virt-v2v handles this.") -+ error (f_"multi-boot operating systems are not supported by \ -+ virt-v2v. Use the --root option to change how virt-v2v \ -+ handles this.") - - | FirstRoot -> - let root = List.hd roots in -@@ -185,7 +204,10 @@ and choose_root root_choice g = function - and reject_if_not_installed_image g root = - let fmt = g#inspect_get_format root in - if fmt <> "installed" then -- error (f_"libguestfs thinks this is not an installed operating system (it might be, for example, an installer disk or live CD). If this is wrong, it is probably a bug in libguestfs. root=%s fmt=%s") root fmt -+ error (f_"libguestfs thinks this is not an installed operating \ -+ system (it might be, for example, an installer disk \ -+ or live CD). If this is wrong, it is probably a bug \ -+ in libguestfs. root=%s fmt=%s") root fmt - - (* Wrapper around g#inspect_list_applications2 which, for RPM - * guests, on failure tries to rebuild the RPM database before -@@ -275,5 +297,9 @@ and sanity_check_inspection inspect = - - and error_if_unknown fieldname value = - if value = "unknown" then -- error (f_"inspection could not detect the source guest (or physical machine).\n\nAssuming that you are running virt-v2v/virt-p2v on a source which is supported (and not, for example, a blank disk), then this should not happen.\n\nInspection field ‘%s’ was ‘unknown’.") -+ error (f_"inspection could not detect the source guest (or \ -+ physical machine).\n\nAssuming that you are running \ -+ virt-v2v/virt-p2v on a source which is supported (and \ -+ not, for example, a blank disk), then this should not \ -+ happen.\n\nInspection field ‘%s’ was ‘unknown’.") - fieldname -diff --git a/convert/target_bus_assignment.ml b/convert/target_bus_assignment.ml -index f8675cf2..54c9516b 100644 ---- a/convert/target_bus_assignment.ml -+++ b/convert/target_bus_assignment.ml -@@ -81,7 +81,13 @@ let rec target_bus_assignment source_disks source_removables guestcaps = - ignore (insert_after bus 0 t) - | Some desired_slot_nr -> - if not (insert_after bus desired_slot_nr t) then -- warning (f_"removable %s device in slot %d clashes with another disk, so it has been moved to a higher numbered slot on the same bus. This may mean that this removable device has a different name inside the guest (for example a CD-ROM originally called /dev/hdc might move to /dev/hdd, or from D: to E: on a Windows guest).") -+ warning (f_"removable %s device in slot %d clashes with another \ -+ disk, so it has been moved to a higher numbered slot \ -+ on the same bus. This may mean that this removable \ -+ device has a different name inside the guest (for \ -+ example a CD-ROM originally called /dev/hdc might \ -+ move to /dev/hdd, or from D: to E: on a Windows \ -+ guest).") - (match r.s_removable_type with - | CDROM -> s_"CD-ROM" - | Floppy -> s_"floppy disk") -diff --git a/in-place/in_place.ml b/in-place/in_place.ml -index 7e531bc4..55541814 100644 ---- a/in-place/in_place.ml -+++ b/in-place/in_place.ml -@@ -104,7 +104,8 @@ let rec main () = - *) - let rec error_unless_ip_addr what addr = - if not (PCRE.matches mac_ip_re addr) then -- error (f_"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address") what addr -+ error (f_"cannot parse --mac ip %s: doesn’t look like “%s” is \ -+ an IP address") what addr - in - error_unless_ip_addr "ipaddr" if_ip_address; - Option.may (error_unless_ip_addr "gw") if_default_gateway; -@@ -115,7 +116,8 @@ let rec main () = - | Some len -> - let len = - try int_of_string len with -- | Failure _ -> error (f_"cannot parse --mac ip prefix length field as an integer: %s") len in -+ | Failure _ -> error (f_"cannot parse --mac ip prefix length \ -+ field as an integer: %s") len in - if len < 0 || len > 128 then - error (f_"--mac ip prefix length field is out of range"); - Some len in -@@ -254,7 +256,8 @@ read the man page virt-v2v-in-place(1). - let { Xml.uri_server = server; uri_scheme = scheme } = - try Xml.parse_uri orig_uri - with Invalid_argument msg -> -- error (f_"could not parse '-ic %s'. Original error message was: %s") -+ error (f_"could not parse '-ic %s'. Original error \ -+ message was: %s") - orig_uri msg in - - match server, scheme with -@@ -357,7 +360,12 @@ and check_host_free_space () = - debug "check_host_free_space: large_tmpdir=%s free_space=%Ld" - large_tmpdir free_space; - if free_space < 1_073_741_824L then -- error (f_"insufficient free space in the conversion server temporary directory %s (%s).\n\nEither free up space in that directory, or set the LIBGUESTFS_CACHEDIR environment variable to point to another directory with more than 1GB of free space.\n\nSee also the virt-v2v(1) manual, section \"Minimum free space check in the host\".") -+ error (f_"insufficient free space in the conversion server temporary \ -+ directory %s (%s).\n\nEither free up space in that directory, \ -+ or set the LIBGUESTFS_CACHEDIR environment variable to point \ -+ to another directory with more than 1GB of free space.\n\n\ -+ See also the virt-v2v(1) manual, section \"Minimum free \ -+ space check in the host\".") - large_tmpdir (human_size free_space) - - let () = run_main_and_handle_errors main -diff --git a/input/OVA.ml b/input/OVA.ml -index 09ceee98..e26059bf 100644 ---- a/input/OVA.ml -+++ b/input/OVA.ml -@@ -118,11 +118,15 @@ let rec parse_ova ova = - untar ~format ova tmpdir; - tmpdir, Directory - | `Zip | `GZip | `XZ | `Unknown -> -- error (f_"%s: unsupported file format\n\nFormats which we currently understand for '-i ova' are: tar (uncompressed, compress with gzip or xz), zip") ova -+ error (f_"%s: unsupported file format\n\nFormats which we \ -+ currently understand for '-i ova' are: tar \ -+ (uncompressed, compress with gzip or xz), zip") ova - ) - - | `Unknown -> -- error (f_"%s: unsupported file format\n\nFormats which we currently understand for '-i ova' are: tar (uncompressed, compress with gzip or xz), zip") ova -+ error (f_"%s: unsupported file format\n\nFormats which we \ -+ currently understand for '-i ova' are: tar (uncompressed, \ -+ compress with gzip or xz), zip") ova - ) in - - (* Exploded path must be absolute (RHBZ#1155121). *) -@@ -140,7 +144,8 @@ let rec parse_ova ova = - * so it is readable by qemu.qemu. This is libvirt bug RHBZ#890291. - *) - if Unix.geteuid () = 0 && backend_is_libvirt () then ( -- warning (f_"making OVA directory public readable to work around libvirt bug https://bugzilla.redhat.com/1045069"); -+ warning (f_"making OVA directory public readable to work around \ -+ libvirt bug https://bugzilla.redhat.com/1045069"); - let what = - match ova_type with - | Directory -> [ top_dir ] -@@ -348,7 +353,8 @@ let resolve_href ({ top_dir; ova_type } as t) href = - (try - let filename = Realpath.realpath filename in - if not (String.is_prefix filename real_top_dir) then -- error (f_"-i ova: invalid OVA file: path ‘%s’ references a file outside the archive") href; -+ error (f_"-i ova: invalid OVA file: path ‘%s’ references a file \ -+ outside the archive") href; - Some (LocalFile filename) - with - Unix_error (ENOENT, "realpath", _) -> None -diff --git a/input/OVF.ml b/input/OVF.ml -index 16c0b09c..48d5a684 100644 ---- a/input/OVF.ml -+++ b/input/OVF.ml -@@ -99,7 +99,8 @@ let rec parse_ovf_from_ova ovf_filename = - | "bios" -> BIOS - | "efi" -> UEFI - | s -> -- error (f_"unknown Config:firmware value %s (expected \"bios\" or \"efi\")") s in -+ error (f_"unknown Config:firmware value %s (expected \"bios\" \ -+ or \"efi\")") s in - - name, memory, vcpu, cpu_topology, firmware, - parse_disks xpathctx, parse_removables xpathctx, parse_nics xpathctx -@@ -254,10 +255,13 @@ and parent_controller xpathctx id = - | Some 6 -> Some Source_SCSI - | Some 20 -> Some Source_SATA - | None -> -- warning (f_"ova disk has no parent controller, please report this as a bug supplying the *.ovf file extracted from the ova"); -+ warning (f_"ova disk has no parent controller, please report this as \ -+ a bug supplying the *.ovf file extracted from the ova"); - None - | Some controller -> -- warning (f_"ova disk has an unknown VMware controller type (%d), please report this as a bug supplying the *.ovf file extracted from the ova") -+ warning (f_"ova disk has an unknown VMware controller type (%d), please \ -+ report this as a bug supplying the *.ovf file extracted \ -+ from the ova") - controller; - None - -diff --git a/input/input_disk.ml b/input/input_disk.ml -index 508adf9d..279250fe 100644 ---- a/input/input_disk.ml -+++ b/input/input_disk.ml -@@ -40,7 +40,8 @@ module Disk = struct - error (f_"no -io (input options) are allowed here"); - - if args = [] then -- error (f_"-i disk: expecting a disk image (filename) on the command line"); -+ error (f_"-i disk: expecting a disk image (filename) \ -+ on the command line"); - - (* Check the input files exist and are readable. *) - List.iter (fun disk -> access disk [R_OK]) args; -@@ -88,7 +89,8 @@ module Disk = struct - - (* Check nbdkit is installed. *) - if not (Nbdkit.is_installed ()) then -- error (f_"nbdkit is not installed or not working. It is required to use ‘-i disk’."); -+ error (f_"nbdkit is not installed or not working. It is required to \ -+ use ‘-i disk’."); - - if not (Nbdkit.probe_plugin "file") then - error (f_"nbdkit-file-plugin is not installed or not working"); -diff --git a/input/input_libvirt.ml b/input/input_libvirt.ml -index 9311e89a..9e40fab5 100644 ---- a/input/input_libvirt.ml -+++ b/input/input_libvirt.ml -@@ -38,7 +38,8 @@ let rec get_source_from_libvirt options args = - match args with - | [arg] -> arg - | _ -> -- error (f_"-i libvirt: expecting a libvirt guest name on the command line") in -+ error (f_"-i libvirt: expecting a libvirt guest name \ -+ on the command line") in - - (* Connect to the hypervisor. *) - let conn = -@@ -55,7 +56,8 @@ and get_source_from_libvirt_xml _ args = - match args with - | [arg] -> arg - | _ -> -- error (f_"-i libvirtxml: expecting a libvirt XML filename on the command line") in -+ error (f_"-i libvirtxml: expecting a libvirt XML filename \ -+ on the command line") in - let xml = read_whole_file xmlfile in - let source, disks = parse_libvirt_xml xml in - source, disks -@@ -63,7 +65,8 @@ and get_source_from_libvirt_xml _ args = - and setup_servers options dir disks = - (* Check nbdkit is installed. *) - if not (Nbdkit.is_installed ()) then -- error (f_"nbdkit is not installed or not working. It is required to use ‘-i libvirt|libvirtxml’."); -+ error (f_"nbdkit is not installed or not working. It is required to \ -+ use ‘-i libvirt|libvirtxml’."); - - if not (Nbdkit.probe_plugin "file") then - error (f_"nbdkit-file-plugin is not installed or not working"); -diff --git a/input/input_ova.ml b/input/input_ova.ml -index 8ec1f802..7404acc3 100644 ---- a/input/input_ova.ml -+++ b/input/input_ova.ml -@@ -76,14 +76,16 @@ module OVA = struct - match r with - | Checksums.Good_checksum -> () - | Checksums.Mismatched_checksum (_, actual) -> -- error (f_"-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = %s, expected = %s)") -+ error (f_"-i ova: corrupt OVA: checksum of disk %s does not match \ -+ manifest (actual = %s, expected = %s)") - filename actual (Checksums.string_of_csum_t csum) - | Checksums.Missing_file -> - (* RHBZ#1570407: Some OVA files generated by VMware - * reference non-existent components in the *.mf file. - * Generate a warning and ignore it. - *) -- warning (f_"manifest has a checksum for non-existent file %s (ignored)") -+ warning (f_"manifest has a checksum for non-existent file %s \ -+ (ignored)") - filename - ) manifest; - -@@ -234,5 +236,6 @@ module OVA = struct - else None - - and error_missing_href href = -- error (f_"-i ova: OVF references file ‘%s’ which was not found in the OVA archive") href -+ error (f_"-i ova: OVF references file ‘%s’ which was not found \ -+ in the OVA archive") href - end -diff --git a/input/input_vcenter_https.ml b/input/input_vcenter_https.ml -index 863f3a00..7c505296 100644 ---- a/input/input_vcenter_https.ml -+++ b/input/input_vcenter_https.ml -@@ -67,14 +67,16 @@ module VCenterHTTPS = struct - match args with - | [arg] -> arg - | _ -> -- error (f_"-i libvirt: expecting a libvirt guest name on the command line") in -+ error (f_"-i libvirt: expecting a libvirt guest name \ -+ on the command line") in - - (* -ip is required in this mode, see RHBZ#1960087 *) - let password_file = - match options.input_password with - | Some file -> file - | None -> -- error (f_"-i libvirt: expecting -ip passwordfile parameter for vCenter connection") in -+ error (f_"-i libvirt: expecting -ip passwordfile parameter for \ -+ vCenter connection") in - - (* -ic must be set and it must contain a server. This is - * enforced by virt-v2v. -@@ -83,7 +85,8 @@ module VCenterHTTPS = struct - match options.input_conn with - | Some ic -> ic - | None -> -- error (f_"-i libvirt: expecting -ic parameter for vcenter connection") in -+ error (f_"-i libvirt: expecting -ic parameter for \ -+ vcenter connection") in - - let uri = - try Xml.parse_uri input_conn -@@ -95,7 +98,8 @@ module VCenterHTTPS = struct - match uri with - | { Xml.uri_server = Some server } -> server - | { Xml.uri_server = None } -> -- error (f_"-i libvirt: expecting -ic parameter to contain vcenter server name") in -+ error (f_"-i libvirt: expecting -ic parameter to contain \ -+ vcenter server name") in - - (* Connect to the hypervisor. *) - let conn = -@@ -116,7 +120,8 @@ module VCenterHTTPS = struct - match xpath_string xpathctx "/domain/vmware:datacenterpath" with - | Some dcPath -> dcPath - | None -> -- error (f_"vcenter: was not found in the XML. You need to upgrade to libvirt ≥ 1.2.20.") in -+ error (f_"vcenter: was not found in the XML. \ -+ You need to upgrade to libvirt ≥ 1.2.20.") in - - List.iteri ( - fun i { d_format = format; d_type } -> -diff --git a/input/input_vddk.ml b/input/input_vddk.ml -index e48495d3..6444ce18 100644 ---- a/input/input_vddk.ml -+++ b/input/input_vddk.ml -@@ -95,14 +95,18 @@ information on these settings. - - (* thumbprint is mandatory. *) - if not (List.mem_assoc "thumbprint" io_options) then -- error (f_"You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of the VMware server. To find the thumbprint, see the nbdkit-vddk-plugin(1) manual. See also the virt-v2v-input-vmware(1) manual."); -+ error (f_"You must pass the ‘-io vddk-thumbprint’ option with the \ -+ SSL thumbprint of the VMware server. To find the thumbprint, \ -+ see the nbdkit-vddk-plugin(1) manual. See also the \ -+ virt-v2v-input-vmware(1) manual."); - - (* 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 -+ error (f_"-i libvirt: expecting a libvirt guest name \ -+ on the command line") in - - (* -ic must be set and it must contain a server. This is - * enforced by virt-v2v. -@@ -111,7 +115,8 @@ information on these settings. - match options.input_conn with - | Some ic -> ic - | None -> -- error (f_"-i libvirt: expecting -ic parameter for vcenter connection") in -+ error (f_"-i libvirt: expecting -ic parameter \ -+ for vcenter connection") in - - if not options.read_only then - error (f_"in-place mode does not work with VDDK source"); -@@ -143,7 +148,10 @@ information on these settings. - match xpath_string "/domain/vmware:moref" with - | Some moref -> moref - | None -> -- error (f_" was not found in the output of ‘virsh dumpxml \"%s\"’. The most likely reason is that libvirt is too old, try upgrading libvirt to ≥ 3.7.") guest in -+ error (f_" was not found in the output of \ -+ ‘virsh dumpxml \"%s\"’. The most likely reason is that \ -+ libvirt is too old, try upgrading \ -+ libvirt to ≥ 3.7.") guest in - - (* It probably never happens that the server name can be missing - * from the libvirt URI, but we need a server name to pass to -diff --git a/input/input_xen_ssh.ml b/input/input_xen_ssh.ml -index 0aad36a8..b583bd55 100644 ---- a/input/input_xen_ssh.ml -+++ b/input/input_xen_ssh.ml -@@ -54,14 +54,16 @@ module XenSSH = struct - match args with - | [arg] -> arg - | _ -> -- error (f_"-i libvirt: expecting a libvirt guest name on the command line") in -+ 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 -+ error (f_"-i libvirt: expecting -ic parameter for \ -+ Xen over SSH connection") in - - let uri = - try Xml.parse_uri input_conn -@@ -82,7 +84,8 @@ module XenSSH = struct - match uri.Xml.uri_server with - | Some server -> server - | None -> -- error (f_"‘-ic %s’ URL does not contain a host name field") input_conn in -+ error (f_"‘-ic %s’ URL does not contain a host name field") -+ input_conn in - - let port = - match uri.uri_port with -diff --git a/input/nbdkit_vddk.ml b/input/nbdkit_vddk.ml -index 9609c442..86d9b1a9 100644 ---- a/input/nbdkit_vddk.ml -+++ b/input/nbdkit_vddk.ml -@@ -70,7 +70,8 @@ let create_vddk ?bandwidth ?config ?cookie ?cor ?libdir ~moref - | None -> () - | Some libdir -> - if not (is_directory libdir) then -- error (f_"‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-vmware(1) manual.") libdir -+ error (f_"‘-io vddk-libdir=%s’ does not point to a directory. \ -+ See the virt-v2v-input-vmware(1) manual.") libdir - in - - (* Check that the VDDK plugin is installed and working. We also -diff --git a/input/parse_domain_from_vmx.ml b/input/parse_domain_from_vmx.ml -index 7aca2c24..15ee093f 100644 ---- a/input/parse_domain_from_vmx.ml -+++ b/input/parse_domain_from_vmx.ml -@@ -82,7 +82,8 @@ let scp_from_remote_to_temporary uri tmpdir filename = - if verbose () then - eprintf "%s\n%!" cmd; - if Sys.command cmd <> 0 then -- error (f_"could not copy the VMX file from the remote server, see earlier error messages"); -+ error (f_"could not copy the VMX file from the remote server, \ -+ see earlier error messages"); - localfile - - (* Test if [path] exists on the remote server. *) -diff --git a/input/parse_libvirt_xml.ml b/input/parse_libvirt_xml.ml -index 65693c98..123d09f4 100644 ---- a/input/parse_libvirt_xml.ml -+++ b/input/parse_libvirt_xml.ml -@@ -44,7 +44,8 @@ let get_drive_slot str offset = - let name = String.sub str offset (String.length str - offset) in - try Some (drive_index name) - with Invalid_argument _ -> -- warning (f_"could not parse device name ‘%s’ from the source libvirt XML") str; -+ warning (f_"could not parse device name ‘%s’ \ -+ from the source libvirt XML") str; - None - - let parse_libvirt_xml ?conn xml = -@@ -70,7 +71,8 @@ let parse_libvirt_xml ?conn xml = - let hypervisor = - match xpath_string "/domain/@type" with - | None | Some "" -> -- error (f_"in the libvirt XML metadata, is missing or empty") -+ error (f_"in the libvirt XML metadata, \ -+ is missing or empty") - | Some s -> source_hypervisor_of_string s in - let name = - match xpath_string "/domain/name/text()" with -@@ -155,7 +157,8 @@ let parse_libvirt_xml ?conn xml = - | Some "none" -> - LNone - | Some t -> -- warning (f_" in the input libvirt XML was ignored") t; -+ warning (f_" in the input libvirt XML \ -+ was ignored") t; - LNoListen - ) in - let port = -@@ -176,10 +179,13 @@ let parse_libvirt_xml ?conn xml = - s_keymap = keymap; s_password = password; s_listen = listen; - s_port = port } - | Some ("sdl"|"desktop" as t) -> -- warning (f_"virt-v2v does not support local displays, so in the input libvirt XML was ignored") t; -+ warning (f_"virt-v2v does not support local displays, so \ -+ in the input libvirt XML was ignored") -+ t; - None - | Some t -> -- warning (f_"display in the input libvirt XML was ignored") t; -+ warning (f_"display in the input \ -+ libvirt XML was ignored") t; - None - ) in - -@@ -297,7 +303,8 @@ let parse_libvirt_xml ?conn xml = - sprintf "%s://%s%s%s" driver host port (uri_quote path) in - add_disk format controller (HTTP url) - | Some protocol, _, _ -> -- warning (f_" with was ignored") -+ warning (f_" with \ -+ was ignored") - protocol - ) - | Some "volume" -> -@@ -323,7 +330,8 @@ let parse_libvirt_xml ?conn xml = - | None -> () - ); - | Some vol_type -> -- warning (f_" with was ignored") vol_type -+ warning (f_" with \ -+ was ignored") vol_type - ) - ) - | Some disk_type -> -@@ -364,13 +372,15 @@ let parse_libvirt_xml ?conn xml = - let name = String.sub dev 2 (String.length dev - 2) in - (try Some (int_of_string name) - with Failure _ -> -- warning (f_"could not parse device name ‘%s’ from the source libvirt XML") dev; -+ warning (f_"could not parse device name ‘%s’ \ -+ from the source libvirt XML") dev; - None - ) - | Some dev -> - let rec loop = function - | [] -> -- warning (f_" was ignored because the device name could not be recognized") dev; -+ warning (f_" was ignored because \ -+ the device name could not be recognized") dev; - None - | prefix :: rest -> - if String.is_prefix dev prefix then ( -diff --git a/input/vCenter.ml b/input/vCenter.ml -index 8a1a5655..f3bc80e2 100644 ---- a/input/vCenter.ml -+++ b/input/vCenter.ml -@@ -69,7 +69,9 @@ let rec start_nbdkit_for_path ?bandwidth ?cor ?password_file - if uri.uri_user <> None then - error (f_"vcenter: incorrect username or password") - else -- error (f_"vcenter: incorrect username or password. You might need to specify the username in the URI like this: [vpx|esx|..]://USERNAME@[etc]") -+ error (f_"vcenter: incorrect username or password. You might need \ -+ to specify the username in the URI like this: \ -+ [vpx|esx|..]://USERNAME@[etc]") - ); - - if status = "404" then ( -@@ -150,7 +152,8 @@ and fetch_headers_from_url password_file uri sslverify https_url = - (match uri.uri_user, password_file with - | None, None -> () - | None, Some _ -> -- warning (f_"-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL") -+ warning (f_"-ip PASSWORD_FILE parameter ignored because \ -+ 'user@' was not given in the URL") - | Some user, None -> - List.push_back curl_args ("user", Some user) - | Some user, Some password_file -> -diff --git a/inspector/inspector.ml b/inspector/inspector.ml -index 222371d5..13d58df3 100644 ---- a/inspector/inspector.ml -+++ b/inspector/inspector.ml -@@ -111,7 +111,8 @@ let rec main () = - *) - let rec error_unless_ip_addr what addr = - if not (PCRE.matches mac_ip_re addr) then -- error (f_"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address") what addr -+ error (f_"cannot parse --mac ip %s: doesn’t look like “%s” \ -+ is an IP address") what addr - in - error_unless_ip_addr "ipaddr" if_ip_address; - Option.may (error_unless_ip_addr "gw") if_default_gateway; -@@ -122,7 +123,8 @@ let rec main () = - | Some len -> - let len = - try int_of_string len with -- | Failure _ -> error (f_"cannot parse --mac ip prefix length field as an integer: %s") len in -+ | Failure _ -> error (f_"cannot parse --mac ip prefix \ -+ length field as an integer: %s") len in - if len < 0 || len > 128 then - error (f_"--mac ip prefix length field is out of range"); - Some len in -@@ -191,7 +193,8 @@ A short summary of the options is given below. For detailed help please - read the man page virt-v2v-inspector(1). - ") - prog in -- let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true ~machine_readable:true usage_msg in -+ let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true -+ ~machine_readable:true usage_msg in - Getopt.parse opthandle.getopt; - - (* Print the version, easier than asking users to tell us. *) -@@ -260,7 +263,8 @@ read the man page virt-v2v-inspector(1). - let { Xml.uri_server = server; uri_scheme = scheme } = - try Xml.parse_uri orig_uri - with Invalid_argument msg -> -- error (f_"could not parse '-ic %s'. Original error message was: %s") -+ error (f_"could not parse '-ic %s'. \ -+ Original error message was: %s") - orig_uri msg in - - match server, scheme, input_transport with -@@ -290,7 +294,9 @@ read the man page virt-v2v-inspector(1). - - (* Unknown remote scheme. *) - | Some _, Some _, _ -> -- warning (f_"no support for remote libvirt connections to '-ic %s'. The conversion may fail when it tries to read the source disks.") orig_uri; -+ warning (f_"no support for remote libvirt connections \ -+ to '-ic %s'. The conversion may fail when it \ -+ tries to read the source disks.") orig_uri; - (module Input_libvirt.Libvirt_) in - - let input_options = { -@@ -374,8 +380,14 @@ and check_host_free_space () = - debug "check_host_free_space: large_tmpdir=%s free_space=%Ld" - large_tmpdir free_space; - if free_space < 1_073_741_824L then -- error (f_"insufficient free space in the conversion server temporary directory %s (%s).\n\nEither free up space in that directory, or set the LIBGUESTFS_CACHEDIR environment variable to point to another directory with more than 1GB of free space.\n\nSee also the virt-v2v(1) manual, section \"Minimum free space check in the host\".") -- large_tmpdir (human_size free_space) -+ error (f_"insufficient free space in the conversion server \ -+ temporary directory %s (%s).\n\nEither free up space \ -+ in that directory, or set the LIBGUESTFS_CACHEDIR \ -+ environment variable to point to another directory \ -+ with more than 1GB of free space.\n\nSee also the \ -+ virt-v2v(1) manual, section \ -+ \"Minimum free space check in the host\".") -+ large_tmpdir (human_size free_space) - - (* This is a copy of {!Output.get_disks}. *) - and get_disks dir = -diff --git a/lib/create_ovf.ml b/lib/create_ovf.ml -index 79b32857..5e444868 100644 ---- a/lib/create_ovf.ml -+++ b/lib/create_ovf.ml -@@ -515,13 +515,17 @@ let create_meta_files output_alloc output_format sd_uuid image_uuids sizes = - | "raw" -> "RAW" - | "qcow2" -> "COW" - | _ -> -- error (f_"RHV does not support the output format ‘%s’, only raw or qcow2") output_format in -+ error (f_"RHV does not support the output format ‘%s’, \ -+ only raw or qcow2") output_format in - - List.mapi ( - fun i (virtual_size, image_uuid) -> - let size_in_sectors = - if virtual_size &^ 511L <> 0L then -- error (f_"the virtual size of the input disk %d is not an exact multiple of 512 bytes. The virtual size is: %Ld.\n\nThis probably means something unexpected is going on, so please file a bug about this issue.") -+ error (f_"the virtual size of the input disk %d is not an \ -+ exact multiple of 512 bytes. The virtual size is: \ -+ %Ld.\n\nThis probably means something unexpected is \ -+ going on, so please file a bug about this issue.") - i virtual_size; - virtual_size /^ 512L in - -@@ -782,7 +786,10 @@ let rec create_ovf source inspect - *) - (match source with - | { s_display = Some { s_password = Some _ } } -> -- warning (f_"This guest required a password for connection to its display, but this is not supported by RHV. Therefore the converted guest’s display will not require a separate password to connect."); -+ warning (f_"This guest required a password for connection to its display, \ -+ but this is not supported by RHV. Therefore the converted \ -+ guest’s display will not require a separate password \ -+ to connect."); - | _ -> ()); - - if verbose () then ( -@@ -871,7 +878,8 @@ and add_disks sizes guestcaps output_alloc output_format - | "raw" -> "RAW" - | "qcow2" -> "COW" - | _ -> -- error (f_"RHV does not support the output format ‘%s’, only raw or qcow2") output_format in -+ error (f_"RHV does not support the output format ‘%s’, \ -+ only raw or qcow2") output_format in - - (* Note: Upper case in the .meta, mixed case in the OVF. *) - let output_alloc_for_rhv = -diff --git a/lib/libvirt_utils.ml b/lib/libvirt_utils.ml -index 1a24b049..da5cbd5e 100644 ---- a/lib/libvirt_utils.ml -+++ b/lib/libvirt_utils.ml -@@ -28,7 +28,8 @@ let auth_for_password_file ?password_file () = - let auth_fn creds = - List.map ( - function -- | { Libvirt.Connect.typ = Libvirt.Connect.CredentialPassphrase } -> password -+ | { Libvirt.Connect.typ = Libvirt.Connect.CredentialPassphrase } -> -+ password - | _ -> None - ) creds - in -@@ -65,7 +66,8 @@ let get_domain conn name = - if not (String.is_prefix uri "test:") then ( - (match (Libvirt.Domain.get_info dom).Libvirt.Domain.state with - | InfoRunning | InfoBlocked | InfoPaused -> -- error (f_"libvirt domain ‘%s’ is running or paused. It must be shut down in order to perform virt-v2v conversion") -+ error (f_"libvirt domain ‘%s’ is running or paused. It must be \ -+ shut down in order to perform virt-v2v conversion") - (Libvirt.Domain.get_name dom) - | InfoNoState | InfoShutdown | InfoShutoff | InfoCrashed | InfoPMSuspended -> - () -@@ -84,7 +86,11 @@ let get_pool conn name = - (try - Libvirt.Pool.lookup_by_name conn name - with Libvirt.Virterror { code = VIR_ERR_NO_STORAGE_POOL; message } -> -- error (f_"cannot find libvirt pool ‘%s’: %s\n\nUse ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-dumpxml ’ to display details about a particular pool.\n\nTo set the pool which virt-v2v uses, add the ‘-os ’ option.") -+ error (f_"cannot find libvirt pool ‘%s’: %s\n\nUse \ -+ ‘virsh pool-list --all’ to list all available pools, \ -+ and ‘virsh pool-dumpxml ’ to display details \ -+ about a particular pool.\n\nTo set the pool which \ -+ virt-v2v uses, add the ‘-os ’ option.") - name (Option.default "" message) - ) - -diff --git a/lib/networks.ml b/lib/networks.ml -index 93250fe4..c079814d 100644 ---- a/lib/networks.ml -+++ b/lib/networks.ml -@@ -81,25 +81,30 @@ let create () = { - let add_mac t mac vnet_type vnet = - let mac = String.lowercase_ascii mac in - if StringMap.mem mac t.macs then -- error (f_"duplicate --mac parameter. Duplicate mappings specified for MAC address %s.") mac; -+ error (f_"duplicate --mac parameter. Duplicate mappings specified \ -+ for MAC address %s.") mac; - t.macs <- StringMap.add mac (vnet_type, vnet) t.macs - - let add_network t i o = - if StringMap.mem i t.network_map then -- error (f_"duplicate -n/--network parameter. Duplicate mappings specified for network %s.") i; -+ error (f_"duplicate -n/--network parameter. Duplicate mappings \ -+ specified for network %s.") i; - t.network_map <- StringMap.add i o t.network_map - - let add_default_network t o = - if t.default_network <> None then -- error (f_"duplicate -n/--network parameter. Only one default mapping is allowed."); -+ error (f_"duplicate -n/--network parameter. Only one \ -+ default mapping is allowed."); - t.default_network <- Some o - - let add_bridge t i o = - if StringMap.mem i t.bridge_map then -- error (f_"duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s.") i; -+ error (f_"duplicate -b/--bridge parameter. Duplicate mappings \ -+ specified for bridge %s.") i; - t.bridge_map <- StringMap.add i o t.bridge_map - - let add_default_bridge t o = - if t.default_bridge <> None then -- error (f_"duplicate -b/--bridge parameter. Only one default mapping is allowed."); -+ error (f_"duplicate -b/--bridge parameter. Only one default mapping \ -+ is allowed."); - t.default_bridge <- Some o -diff --git a/lib/types.ml b/lib/types.ml -index 7ffb868b..f21c30bd 100644 ---- a/lib/types.ml -+++ b/lib/types.ml -@@ -248,7 +248,8 @@ and string_of_source_display { s_display_type = typ; - | LAddress a -> sprintf " listening on address %s" a - | LNetwork n -> sprintf " listening on network %s" n - | LSocket (Some s) -> sprintf " listening on Unix domain socket %s" s -- | LSocket None -> sprintf " listening on automatically created Unix domain socket" -+ | LSocket None -> -+ sprintf " listening on automatically created Unix domain socket" - | LNone -> " listening on private fd" - ) - -diff --git a/lib/utils.ml b/lib/utils.ml -index 26e7e259..281868b5 100644 ---- a/lib/utils.ml -+++ b/lib/utils.ml -@@ -80,7 +80,8 @@ let find_uefi_firmware guest_arch = - guest_arch in - let rec loop = function - | [] -> -- error (f_"cannot find firmware for UEFI guests.\n\nYou probably need to install OVMF (x86-64), or AAVMF (aarch64)") -+ error (f_"cannot find firmware for UEFI guests.\n\nYou probably \ -+ need to install OVMF (x86-64), or AAVMF (aarch64)") - | ({ Uefi.code; vars = vars_template } as ret) :: rest -> - if Sys.file_exists code && Sys.file_exists vars_template then ret - else loop rest -@@ -197,7 +198,9 @@ and libvirt_qemu_user = - let error_if_no_ssh_agent () = - try ignore (Sys.getenv "SSH_AUTH_SOCK") - with Not_found -> -- error (f_"ssh-agent authentication has not been set up ($SSH_AUTH_SOCK is not set). This is required by qemu to do passwordless ssh access. See the virt-v2v(1) man page for more information.") -+ error (f_"ssh-agent authentication has not been set up ($SSH_AUTH_SOCK \ -+ is not set). This is required by qemu to do passwordless \ -+ ssh access. See the virt-v2v(1) man page for more information.") - - (* Create the directory containing inX and outX sockets. *) - let create_v2v_directory () = -diff --git a/output/create_libvirt_xml.ml b/output/create_libvirt_xml.ml -index bd01304d..e1c1f616 100644 ---- a/output/create_libvirt_xml.ml -+++ b/output/create_libvirt_xml.ml -@@ -392,7 +392,9 @@ let create_libvirt_xml ?pool source inspect - * so target_ide_bus must be empty, otherwise we give a warning. - *) - if Array.length target_buses.target_ide_bus > 0 then -- warning "machine type virt does not support IDE and SATA legacy devices, some legacy devices of this guest have been dropped from the libvirt output"; -+ warning "machine type virt does not support IDE and SATA legacy \ -+ devices, some legacy devices of this guest have been \ -+ dropped from the libvirt output"; - [] in - List.push_back_list devices ide_disks; - List.push_back_list devices -diff --git a/output/output.ml b/output/output.ml -index 6065e592..e419c13d 100644 ---- a/output/output.ml -+++ b/output/output.ml -@@ -76,7 +76,8 @@ let output_to_local_file ?(changeuid = fun f -> f ()) ?(compressed = false) - output_alloc output_format filename size socket = - (* Check nbdkit is installed and has the required plugin. *) - if not (Nbdkit.is_installed ()) then -- error (f_"nbdkit is not installed or not working. It is required to use ‘-o disk’."); -+ error (f_"nbdkit is not installed or not working. It is required \ -+ to use ‘-o disk’."); - if not (Nbdkit.probe_plugin "file") then - error (f_"nbdkit-file-plugin is not installed or not working"); - let nbdkit_config = Nbdkit.config () in -diff --git a/output/output_glance.ml b/output/output_glance.ml -index e6a7f789..08c0c935 100644 ---- a/output/output_glance.ml -+++ b/output/output_glance.ml -@@ -63,7 +63,10 @@ module Glance = struct - * program exits early. - *) - if shell_command "glance image-list > /dev/null" <> 0 then -- error (f_"glance: glance client is not installed or set up correctly. You may need to set environment variables or source a script to enable authentication. See preceding messages for details."); -+ error (f_"glance: glance client is not installed or set up correctly. \ -+ You may need to set environment variables or source a script \ -+ to enable authentication. \ -+ See preceding messages for details."); - - (* When debugging, query the glance client for its version. *) - if verbose () then ( -diff --git a/output/output_kubevirt.ml b/output/output_kubevirt.ml -index 00e6a8a5..d41b5d8e 100644 ---- a/output/output_kubevirt.ml -+++ b/output/output_kubevirt.ml -@@ -58,9 +58,11 @@ module Kubevirt = struct - let output_storage = - match options.output_storage with - | None -> -- error (f_"-o kubevirt: output directory was not specified, use '-os /dir'") -+ error (f_"-o kubevirt: output directory was not specified, \ -+ use '-os /dir'") - | Some d when not (is_directory d) -> -- error (f_"-os %s: output directory does not exist or is not a directory") d -+ error (f_"-os %s: output directory does not exist or \ -+ is not a directory") d - | Some d -> d in - - let output_name = Option.default source.s_name options.output_name in -diff --git a/output/output_libvirt.ml b/output/output_libvirt.ml -index 04b4c5f8..19171a53 100644 ---- a/output/output_libvirt.ml -+++ b/output/output_libvirt.ml -@@ -94,7 +94,13 @@ module Libvirt_ = struct - - (* Does the domain already exist on the target? (RHBZ#889082) *) - if Libvirt_utils.domain_exists conn output_name then -- error (f_"a libvirt domain called ‘%s’ already exists on the target.\n\nIf using virt-v2v directly, use the ‘-on’ option to select a different name. Or delete the existing domain on the target using the ‘virsh undefine’ command.\n\nIf using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or delete the existing domain on the target using the ‘virsh undefine’ command.") -+ error (f_"a libvirt domain called ‘%s’ already exists on the \ -+ target.\n\nIf using virt-v2v directly, use the ‘-on’ \ -+ option to select a different name. Or delete the \ -+ existing domain on the target using the ‘virsh undefine’ \ -+ command.\n\nIf using virt-p2v, select a different ‘Name’ \ -+ in the ‘Target properties’. Or delete the existing domain \ -+ on the target using the ‘virsh undefine’ command.") - output_name; - - (* Connect to output libvirt instance and check that the pool exists -@@ -112,9 +118,13 @@ module Libvirt_ = struct - let target_path = - match xpath_string "/pool/target/path/text()" with - | None -> -- error (f_"-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See virt-v2v-output-local(1)") output_pool -+ error (f_"-o libvirt: output pool ‘%s’ does not have \ -+ /pool/target/path element. See \ -+ virt-v2v-output-local(1)") output_pool - | Some dir when not (is_directory dir) -> -- error (f_"-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path element is not a local directory. See virt-v2v-output-local(1)") output_pool -+ error (f_"-o libvirt: output pool ‘%s’ has type='dir' but the \ -+ /pool/target/path element is not a local directory. \ -+ See virt-v2v-output-local(1)") output_pool - | Some dir -> dir in - - (* Get the name of the pool, since we have to use that -@@ -194,7 +204,9 @@ module Libvirt_ = struct - (try Unix.unlink tmpfile with _ -> ()) - with - Libvirt.Virterror { message } -> -- warning (f_"could not define libvirt domain: %s.\nThe libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define %s’ yourself instead.") -+ warning (f_"could not define libvirt domain: %s.\nThe libvirt XML \ -+ is still available in ‘%s’. Try running \ -+ ‘virsh -c %s define %s’ yourself instead.") - (Option.default "" message) tmpfile - (Libvirt.Connect.get_uri conn) tmpfile - ) -diff --git a/output/output_null.ml b/output/output_null.ml -index c8e27c0b..e42b07ee 100644 ---- a/output/output_null.ml -+++ b/output/output_null.ml -@@ -56,7 +56,8 @@ module Null = struct - - (* Check nbdkit is installed and has the required plugin. *) - if not (Nbdkit.is_installed ()) then -- error (f_"nbdkit is not installed or not working. It is required to use ‘-o null’."); -+ error (f_"nbdkit is not installed or not working. \ -+ It is required to use ‘-o null’."); - if not (Nbdkit.probe_plugin "null") then - error (f_"nbdkit-null-plugin is not installed or not working"); - -diff --git a/output/output_openstack.ml b/output/output_openstack.ml -index aa01d5a6..09776e73 100644 ---- a/output/output_openstack.ml -+++ b/output/output_openstack.ml -@@ -141,7 +141,8 @@ The os-* parameters and environment variables are optional. - let error_unless_openstack_command_exists () = - try ignore (which openstack_binary) - with Executable_not_found _ -> -- error (f_"the ‘%s’ program is not available. It is needed to communicate with OpenStack.") -+ error (f_"the ‘%s’ program is not available. \ -+ It is needed to communicate with OpenStack.") - openstack_binary - in - error_unless_openstack_command_exists (); -@@ -195,7 +196,8 @@ The os-* parameters and environment variables are optional. - *) - let args = [ "token"; "issue" ] in - if run_openstack_command args <> 0 then -- error (f_"openstack: precheck failed, there may be a problem with authentication, see earlier error messages"); -+ error (f_"openstack: precheck failed, there may be a problem with \ -+ authentication, see earlier error messages"); - - let output_name = Option.default source.s_name options.output_name in - -@@ -286,7 +288,8 @@ The os-* parameters and environment variables are optional. - let json = - match run_openstack_command_capture_json !args with - | None -> -- error (f_"openstack: failed to create a cinder volume, see earlier error messages") -+ error (f_"openstack: failed to create a cinder volume, \ -+ see earlier error messages") - | Some json -> json in - let id = JSON_parser.object_get_string "id" json in - -@@ -298,13 +301,15 @@ The os-* parameters and environment variables are optional. - (fun () -> - match run_openstack_command_capture_json args with - | None -> -- error (f_"openstack: failed to query cinder volume status, see earlier error messages") -+ error (f_"openstack: failed to query cinder volume status, \ -+ see earlier error messages") - | Some json -> - match JSON_parser.object_get_string "status" json with - | "creating" -> None - | "available" -> Some () (* done *) - | status -> -- error (f_"openstack: unknown volume status \"%s\": expected \"creating\" or \"available\"") status -+ error (f_"openstack: unknown volume status \"%s\": \ -+ expected \"creating\" or \"available\"") status - ); - - id -@@ -330,7 +335,8 @@ The os-* parameters and environment variables are optional. - let attach_volume id = - let args = [ "server"; "add"; "volume"; server_id; id ] in - if run_openstack_command args <> 0 then -- error (f_"openstack: failed to attach cinder volume to VM, see earlier error messages"); -+ error (f_"openstack: failed to attach cinder volume to VM, \ -+ see earlier error messages"); - - (* We expect the disk to appear under /dev/disk/by-id. - * -@@ -351,7 +357,8 @@ The os-* parameters and environment variables are optional. - else id in - - with_timeout ~sleep:5 -- (sprintf (f_"waiting for cinder volume %s to attach to the conversion appliance") id) -+ (sprintf (f_"waiting for cinder volume %s to attach to the \ -+ conversion appliance") id) - attach_timeout - (fun () -> - let entries = -@@ -428,7 +435,8 @@ The os-* parameters and environment variables are optional. - List.push_back args id; - - if run_openstack_command !args <> 0 then -- error (f_"openstack: failed to set image properties on cinder volume, see earlier error messages") -+ error (f_"openstack: failed to set image properties on cinder volume, \ -+ see earlier error messages") - in - - (* Image properties are only set on the first disk. -diff --git a/output/output_qemu.ml b/output/output_qemu.ml -index 5788fc42..b667e782 100644 ---- a/output/output_qemu.ml -+++ b/output/output_qemu.ml -@@ -71,7 +71,8 @@ module QEMU = struct - | None -> - error (f_"-o qemu: output directory was not specified, use '-os /dir'") - | Some d when not (is_directory d) -> -- error (f_"-os %s: output directory does not exist or is not a directory") d -+ error (f_"-os %s: output directory does not exist or is \ -+ not a directory") d - | Some d -> d in - - let output_name = Option.default source.s_name options.output_name in -diff --git a/output/output_rhv.ml b/output/output_rhv.ml -index 45f831e3..08ef651b 100644 ---- a/output/output_rhv.ml -+++ b/output/output_rhv.ml -@@ -88,9 +88,17 @@ module RHV = struct - debug "RHV: actual UID:GID of new files is %d:%d" actual_uid actual_gid; - if uid <> actual_uid || gid <> actual_gid then ( - if running_as_root then -- warning (f_"cannot write files to the NFS server as %d:%d, even though we appear to be running as root. This probably means the NFS client or idmapd is not configured properly.\n\nYou will have to chown the files that virt-v2v creates after the run, otherwise RHV-M will not be able to import the VM.") uid gid -+ warning (f_"cannot write files to the NFS server as %d:%d, \ -+ even though we appear to be running as root. This \ -+ probably means the NFS client or idmapd is not \ -+ configured properly.\n\nYou will have to chown \ -+ the files that virt-v2v creates after the run, \ -+ otherwise RHV-M will not be able to import the VM.") -+ uid gid - else -- warning (f_"cannot write files to the NFS server as %d:%d. You might want to stop virt-v2v (^C) and rerun it as root.") uid gid -+ warning (f_"cannot write files to the NFS server as %d:%d. \ -+ You might want to stop virt-v2v (^C) and rerun it \ -+ as root.") uid gid - ) in - - (* Create unique UUIDs for everything *) -@@ -209,7 +217,9 @@ module RHV = struct - (* Try mounting it. *) - let cmd = [ "mount"; sprintf "%s:%s" server export; mp ] in - if run_command cmd <> 0 then -- error (f_"mount command failed, see earlier errors.\n\nThis probably means you didn't specify the right %s path [-os %s], or else you need to rerun virt-v2v as root.") domain_class os; -+ error (f_"mount command failed, see earlier errors.\n\nThis probably \ -+ means you didn't specify the right %s path [-os %s], or \ -+ else you need to rerun virt-v2v as root.") domain_class os; - - (* Make sure it is unmounted at exit, as late as possible (prio=9999) *) - On_exit.f ~prio:9999 ( -@@ -232,7 +242,10 @@ module RHV = struct - let entries = - try Sys.readdir mp - with Sys_error msg -> -- error (f_"could not read the %s specified by the '-os %s' parameter on the command line. Is it really an OVirt or RHV-M %s? The original error is: %s") domain_class os domain_class msg in -+ error (f_"could not read the %s specified by the '-os %s' \ -+ parameter on the command line. Is it really an \ -+ OVirt or RHV-M %s? The original error is: %s") -+ domain_class os domain_class msg in - let entries = Array.to_list entries in - let uuids = List.filter ( - fun entry -> -@@ -244,9 +257,12 @@ module RHV = struct - match uuids with - | [uuid] -> uuid - | [] -> -- error (f_"there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?") domain_class os domain_class -+ error (f_"there are no UUIDs in the %s (%s). Is it really an \ -+ OVirt or RHV-M %s?") domain_class os domain_class - | _::_ -> -- error (f_"there are multiple UUIDs in the %s (%s). This is unexpected, and may be a bug in virt-v2v or OVirt.") domain_class os in -+ error (f_"there are multiple UUIDs in the %s (%s). This is \ -+ unexpected, and may be a bug in virt-v2v or OVirt.") -+ domain_class os in - - (* Check that the domain has been attached to a Data Center by - * checking that the master/vms directory exists. -@@ -254,7 +270,13 @@ module RHV = struct - let () = - let master_vms_dir = mp // uuid // "master" // "vms" in - if not (is_directory master_vms_dir) then -- error (f_"%s does not exist or is not a directory.\n\nMost likely cause: Either the %s (%s) has not been attached to any Data Center, or the path %s is not an %s at all.\n\nYou have to attach the %s to a Data Center using the RHV-M / OVirt user interface first.\n\nIf you don’t know what the %s mount point should be then you can also find this out through the RHV-M user interface.") -+ error (f_"%s does not exist or is not a directory.\n\nMost likely \ -+ cause: Either the %s (%s) has not been attached to any \ -+ Data Center, or the path %s is not an %s at all.\n\n\ -+ You have to attach the %s to a Data Center using the \ -+ RHV-M / OVirt user interface first.\n\nIf you don’t \ -+ know what the %s mount point should be then you can \ -+ also find this out through the RHV-M user interface.") - master_vms_dir domain_class os os - domain_class domain_class domain_class in - -diff --git a/output/output_rhv_upload.ml b/output/output_rhv_upload.ml -index f2ced4f4..c84ce7a6 100644 ---- a/output/output_rhv_upload.ml -+++ b/output/output_rhv_upload.ml -@@ -65,13 +65,17 @@ after their uploads (if you do, you must supply one for each disk): - let output_conn = - match options.output_conn with - | None -> -- error (f_"-o rhv-upload: use ‘-oc’ to point to the oVirt or RHV server REST API URL, which is usually https://servername/ovirt-engine/api") -+ error (f_"-o rhv-upload: use ‘-oc’ to point to the oVirt \ -+ or RHV server REST API URL, which is usually \ -+ https://servername/ovirt-engine/api") - | Some oc -> oc in - (* In theory we could make the password optional in future. *) - let output_password = - match options.output_password with - | None -> -- error (f_"-o rhv-upload: output password file was not specified, use ‘-op’ to point to a file which contains the password used to connect to the oVirt or RHV server") -+ error (f_"-o rhv-upload: output password file was not specified, \ -+ use ‘-op’ to point to a file which contains the password \ -+ used to connect to the oVirt or RHV server") - | Some op -> op in - let output_storage = - match options.output_storage with -@@ -126,7 +130,8 @@ after their uploads (if you do, you must supply one for each disk): - let nil_uuid = "00000000-0000-0000-0000-000000000000" in - let rex_uuid = lazy ( - let hex = "[a-fA-F0-9]" in -- let str = sprintf "^%s{8}-%s{4}-%s{4}-%s{4}-%s{12}$" hex hex hex hex hex in -+ let str = sprintf "^%s{8}-%s{4}-%s{4}-%s{4}-%s{12}$" -+ hex hex hex hex hex in - PCRE.compile str - ) in - if uuid = nil_uuid then false -@@ -151,13 +156,16 @@ after their uploads (if you do, you must supply one for each disk): - let res = run_command [ Python_script.python; "-c"; - "import ovirtsdk4" ] in - if res <> 0 then -- error (f_"the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See previous messages for problems.") -+ error (f_"the Python module ‘ovirtsdk4’ could not be loaded, \ -+ is it installed? See previous messages for problems.") - in - - (* Check that nbdkit is available and new enough. *) - let error_unless_nbdkit_working () = - if not (Nbdkit.is_installed ()) then -- error (f_"nbdkit is not installed or not working. It is required to use ‘-o rhv-upload’. See the virt-v2v-output-rhv(1) manual.") -+ error (f_"nbdkit is not installed or not working. It is required \ -+ to use ‘-o rhv-upload’. See the virt-v2v-output-rhv(1) \ -+ manual.") - in - - let error_unless_nbdkit_min_version config = -@@ -175,7 +183,8 @@ after their uploads (if you do, you must supply one for each disk): - (quote (Python_script.path plugin_script)) in - debug "%s" cmd; - if Sys.command cmd <> 0 then -- error (f_"nbdkit python plugin is not installed or not working. It is required if you want to use ‘-o rhv-upload’. -+ error (f_"nbdkit python plugin is not installed or not working. \ -+ It is required if you want to use ‘-o rhv-upload’. - - See also the virt-v2v-output-rhv(1) manual."); - in -@@ -187,7 +196,10 @@ See also the virt-v2v-output-rhv(1) manual."); - if have_selinux then ( - let selinux = try List.assoc "selinux" config with Not_found -> "no" in - if selinux = "no" then -- error (f_"nbdkit was compiled without SELinux support. You will have to recompile nbdkit with libselinux-devel installed, or else set SELinux to Permissive mode while doing the conversion.") -+ error (f_"nbdkit was compiled without SELinux support. You will \ -+ have to recompile nbdkit with libselinux-devel installed, \ -+ or else set SELinux to Permissive mode while doing the \ -+ conversion.") - ) - in - -@@ -280,8 +292,9 @@ See also the virt-v2v-output-rhv(1) manual."); - | Some uuids -> - let nr_disks = List.length disks in - if List.length uuids <> nr_disks then -- error (f_"the number of ‘-oo rhv-disk-uuid’ parameters passed on th --e command line has to match the number of guest disk images (for this guest: %d)") nr_disks; -+ error (f_"the number of ‘-oo rhv-disk-uuid’ parameters passed on \ -+ the command line has to match the number of guest \ -+ disk images (for this guest: %d)") nr_disks; - uuids - | None -> List.map (fun _ -> uuidgen ()) disks in - -@@ -357,7 +370,10 @@ e command line has to match the number of guest disk images (for this guest: %d) - | "raw" as fmt -> fmt - | "qcow2" as fmt -> fmt - | _ -> -- error (f_"rhv-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If the input is in a different format then force one of these output formats by adding either ‘-of raw’ or ‘-of qcow2’ on the command line.") -+ error (f_"rhv-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ \ -+ is supported. If the input is in a different format \ -+ then force one of these output formats by adding \ -+ either ‘-of raw’ or ‘-of qcow2’ on the command line.") - output_format in - let json_params = - ("disk_format", JSON.String disk_format) :: json_params in -@@ -433,7 +449,8 @@ e command line has to match the number of guest disk images (for this guest: %d) - | None -> assert false - | Some arch -> - if arch <> target_meta.guestcaps.gcaps_arch then -- error (f_"the cluster ‘%s’ does not support the architecture %s but %s") -+ error (f_"the cluster ‘%s’ does not support the architecture %s \ -+ but %s") - rhv_cluster_name target_meta.guestcaps.gcaps_arch arch - ); - -diff --git a/output/output_vdsm.ml b/output/output_vdsm.ml -index 23d1b9cd..132b0cf0 100644 ---- a/output/output_vdsm.ml -+++ b/output/output_vdsm.ml -@@ -94,7 +94,8 @@ For each disk you must supply one of each of these options: - let image_uuids = List.rev !image_uuids in - let vol_uuids = List.rev !vol_uuids in - if image_uuids = [] || vol_uuids = [] then -- error (f_"-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified"); -+ error (f_"-o vdsm: either -oo vdsm-vol-uuid or \ -+ -oo vdsm-vm-uuid was not specified"); - let vm_uuid = - match !vm_uuid with - | None -> -@@ -108,7 +109,8 @@ For each disk you must supply one of each of these options: - match options.output_storage with - | None -> error (f_"-o vdsm: -os option was not specified") - | Some d when not (is_directory d) -> -- error (f_"-os %s: output directory does not exist or is not a directory") d -+ error (f_"-os %s: output directory does not exist \ -+ or is not a directory") d - | Some d -> d in - - let output_name = Option.default source.s_name options.output_name in -@@ -128,7 +130,9 @@ For each disk you must supply one of each of these options: - - if List.length image_uuids <> List.length disks || - List.length vol_uuids <> List.length disks then -- error (f_"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters passed on the command line has to match the number of guest disk images (for this guest: %d)") -+ error (f_"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ \ -+ parameters passed on the command line has to match the \ -+ number of guest disk images (for this guest: %d)") - (List.length disks); - - let dd_mp, dd_uuid = -@@ -141,7 +145,8 @@ For each disk you must supply one of each of these options: - let mp = String.concat "/" (List.rev rest) in - mp, uuid - | _ -> -- error (f_"vdsm: invalid -os parameter does not contain a valid UUID: %s") -+ error (f_"vdsm: invalid -os parameter \ -+ does not contain a valid UUID: %s") - output_storage in - - debug "VDSM: DD mountpoint: %s\nVDSM: DD UUID: %s" dd_mp dd_uuid; -@@ -158,7 +163,8 @@ For each disk you must supply one of each of these options: - - (* Note that VDSM has to create this directory too. *) - if not (is_directory ovf_output) then -- error (f_"OVF (metadata) directory (%s) does not exist or is not a directory") -+ error (f_"OVF (metadata) directory (%s) does not exist or \ -+ is not a directory") - ovf_output; - - debug "VDSM: OVF (metadata) directory: %s" ovf_output; -diff --git a/v2v/v2v.ml b/v2v/v2v.ml -index fcf5e2d4..1e8d03ef 100644 ---- a/v2v/v2v.ml -+++ b/v2v/v2v.ml -@@ -123,7 +123,8 @@ let rec main () = - *) - let rec error_unless_ip_addr what addr = - if not (PCRE.matches mac_ip_re addr) then -- error (f_"cannot parse --mac ip %s: doesn’t look like “%s” is an IP address") what addr -+ error (f_"cannot parse --mac ip %s: doesn’t look like “%s” \ -+ is an IP address") what addr - in - error_unless_ip_addr "ipaddr" if_ip_address; - Option.may (error_unless_ip_addr "gw") if_default_gateway; -@@ -134,7 +135,8 @@ let rec main () = - | Some len -> - let len = - try int_of_string len with -- | Failure _ -> error (f_"cannot parse --mac ip prefix length field as an integer: %s") len in -+ | Failure _ -> error (f_"cannot parse --mac ip prefix length field \ -+ as an integer: %s") len in - if len < 0 || len > 128 then - error (f_"--mac ip prefix length field is out of range"); - Some len in -@@ -329,7 +331,8 @@ A short summary of the options is given below. For detailed help please - read the man page virt-v2v(1). - ") - prog in -- let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true ~machine_readable:true usage_msg in -+ let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true -+ ~machine_readable:true usage_msg in - Getopt.parse opthandle.getopt; - - (* Print the version, easier than asking users to tell us. *) -@@ -420,7 +423,8 @@ read the man page virt-v2v(1). - let { Xml.uri_server = server; uri_scheme = scheme } = - try Xml.parse_uri orig_uri - with Invalid_argument msg -> -- error (f_"could not parse '-ic %s'. Original error message was: %s") -+ error (f_"could not parse '-ic %s'. \ -+ Original error message was: %s") - orig_uri msg in - - match server, scheme, input_transport with -@@ -450,7 +454,9 @@ read the man page virt-v2v(1). - - (* Unknown remote scheme. *) - | Some _, Some _, _ -> -- warning (f_"no support for remote libvirt connections to '-ic %s'. The conversion may fail when it tries to read the source disks.") orig_uri; -+ warning (f_"no support for remote libvirt connections to \ -+ '-ic %s'. The conversion may fail when it tries \ -+ to read the source disks.") orig_uri; - (module Input_libvirt.Libvirt_) in - - let input_options = { -@@ -627,8 +633,14 @@ and check_host_free_space () = - debug "check_host_free_space: large_tmpdir=%s free_space=%Ld" - large_tmpdir free_space; - if free_space < 1_073_741_824L then -- error (f_"insufficient free space in the conversion server temporary directory %s (%s).\n\nEither free up space in that directory, or set the LIBGUESTFS_CACHEDIR environment variable to point to another directory with more than 1GB of free space.\n\nSee also the virt-v2v(1) manual, section \"Minimum free space check in the host\".") -- large_tmpdir (human_size free_space) -+ error (f_"insufficient free space in the conversion server \ -+ temporary directory %s (%s).\n\nEither free up space \ -+ in that directory, or set the LIBGUESTFS_CACHEDIR \ -+ environment variable to point to another directory \ -+ with more than 1GB of free space.\n\nSee also the \ -+ virt-v2v(1) manual, section \ -+ \"Minimum free space check in the host\".") -+ large_tmpdir (human_size free_space) - - and nbdcopy ?request_size output_alloc input_uri output_uri = - (* XXX It's possible that some output modes know whether diff --git a/SOURCES/0013-input-ssh-Use-nbdinfo-can-connect-instead-of-size.patch b/SOURCES/0013-input-ssh-Use-nbdinfo-can-connect-instead-of-size.patch new file mode 100644 index 0000000..c7845cd --- /dev/null +++ b/SOURCES/0013-input-ssh-Use-nbdinfo-can-connect-instead-of-size.patch @@ -0,0 +1,62 @@ +From 970d7123c2025bc148870f4bc6fa75fa9e95905f Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 18 Jan 2024 17:22:26 +0000 +Subject: [PATCH] input/ssh: Use nbdinfo --can connect (instead of --size) + +nbdinfo --size prints the size on stdout, causing it to appear in +virt-v2v output. Using --can connect instead is silent. + +Note that nbdinfo --can connect was added in libnbd 1.9.2 (Jul 2021) +and our previous minimum version of libnbd was 1.9.3 so we're OK. +However since neither of these was a stable version I also updated the +minimum libnbd requirement to 1.10 (Sep 2021), and added a proper +check in ./configure + +Fixes: commit fb72e059863a60503b6011b8590c25c3a010a58f +--- + README | 2 +- + input/ssh.ml | 4 ++-- + m4/guestfs-libraries.m4 | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/README b/README +index 5810f77d..f94bd6de 100644 +--- a/README ++++ b/README +@@ -51,7 +51,7 @@ REQUIREMENTS + + * OCaml bindings for libvirt (https://gitlab.com/libvirt/libvirt-ocaml) + +-* libnbd >= 1.9.3 (https://gitlab.com/nbdkit/libnbd) ++* libnbd >= 1.10 (https://gitlab.com/nbdkit/libnbd) + + * OCaml bindings for libnbd + +diff --git a/input/ssh.ml b/input/ssh.ml +index d3b6dc0c..e35a2b5a 100644 +--- a/input/ssh.ml ++++ b/input/ssh.ml +@@ -56,8 +56,8 @@ let download_file ~server ?port ?user ?password path output = + let remote_file_exists ~server ?port ?user ?password path = + let uri = start_nbdkit ~server ?port ?user ?password path in + +- (* Testing for remote size using nbdinfo should be sufficient to ++ (* Testing that we can connect to the nbdkit server is enough to + * prove the remote file exists. + *) +- let cmd = [ "nbdinfo"; "--size"; uri ] in ++ let cmd = [ "nbdinfo"; "--can"; "connect"; uri ] in + run_command cmd = 0 +diff --git a/m4/guestfs-libraries.m4 b/m4/guestfs-libraries.m4 +index 33b5100e..6789a2cb 100644 +--- a/m4/guestfs-libraries.m4 ++++ b/m4/guestfs-libraries.m4 +@@ -21,7 +21,7 @@ dnl Of course we need libguestfs. + PKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.44]) + + dnl And libnbd. +-PKG_CHECK_MODULES([LIBNBD], [libnbd]) ++PKG_CHECK_MODULES([LIBNBD], [libnbd >= 1.10]) + + dnl Test if it's GNU or XSI strerror_r. + AC_FUNC_STRERROR_R diff --git a/SOURCES/0014-build-Document-that-nbdinfo-and-nbdcopy-are-required.patch b/SOURCES/0014-build-Document-that-nbdinfo-and-nbdcopy-are-required.patch new file mode 100644 index 0000000..1083725 --- /dev/null +++ b/SOURCES/0014-build-Document-that-nbdinfo-and-nbdcopy-are-required.patch @@ -0,0 +1,43 @@ +From aafcd0d11453d8d58a32e66285f12ec3ba3440de Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 18 Jan 2024 17:32:01 +0000 +Subject: [PATCH] build: Document that nbdinfo and nbdcopy are required, and + check + +Update README to document that these tools have been needed (ever +since virt-v2v 2.0), and update ./configure to check it. +--- + README | 2 ++ + m4/guestfs-progs.m4 | 6 ++++++ + 2 files changed, 8 insertions(+) + +diff --git a/README b/README +index f94bd6de..4354754f 100644 +--- a/README ++++ b/README +@@ -53,6 +53,8 @@ REQUIREMENTS + + * libnbd >= 1.10 (https://gitlab.com/nbdkit/libnbd) + ++* The 'nbdinfo' and 'nbdcopy' programs from libnbd. ++ + * OCaml bindings for libnbd + + * nbdkit >= 1.27.4 (https://gitlab.com/nbdkit/nbdkit) +diff --git a/m4/guestfs-progs.m4 b/m4/guestfs-progs.m4 +index 7c5f0d81..ae5094ce 100644 +--- a/m4/guestfs-progs.m4 ++++ b/m4/guestfs-progs.m4 +@@ -59,6 +59,12 @@ AM_CONDITIONAL([HAVE_ZIP],[test "x$ZIP" != "xno"]) + AC_PATH_PROGS([UNZIP],[unzip],[no]) + AC_DEFINE_UNQUOTED([UNZIP],["$UNZIP"],[Name of unzip program.]) + ++dnl nbdinfo, nbdcopy, required by virt-v2v ++AC_CHECK_PROG([NBDINFO], [nbdinfo], [nbdinfo], [no]) ++AC_CHECK_PROG([NBDCOPY], [nbdcopy], [nbdcopy], [no]) ++AS_IF([test "x$NBDINFO" = "xno" || test "x$NBDCOPY" = "xno"], ++ [AC_MSG_ERROR([nbdinfo and nbdcopy (from libnbd) must be installed])]) ++ + dnl Check for valgrind + AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no]) + AS_IF([test "x$VALGRIND" != "xno"],[ diff --git a/SOURCES/0014-o-kubevirt-Implement-oo-compressed-for-qcow2-files.patch b/SOURCES/0014-o-kubevirt-Implement-oo-compressed-for-qcow2-files.patch deleted file mode 100644 index 8238af4..0000000 --- a/SOURCES/0014-o-kubevirt-Implement-oo-compressed-for-qcow2-files.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 64a86bb9ef0298496a992a3a76d190b3895ffeee Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Fri, 20 Jan 2023 10:35:55 +0000 -Subject: [PATCH] -o kubevirt: Implement -oo compressed for qcow2 files - -Reported-by: Xiaodai Wang -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2162444 -Updates: commit 53690a0c602a4286fdb9408fdf6a01cc352697ec -(cherry picked from commit ada18150543466955ff73a24a9b9a66ddfac270e) ---- - output/output_kubevirt.ml | 30 ++++++++++++++++++++++-------- - 1 file changed, 22 insertions(+), 8 deletions(-) - -diff --git a/output/output_kubevirt.ml b/output/output_kubevirt.ml -index d41b5d8e..ee89fdbf 100644 ---- a/output/output_kubevirt.ml -+++ b/output/output_kubevirt.ml -@@ -35,7 +35,7 @@ let rfc1123_re = - "[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*" - - module Kubevirt = struct -- type poptions = output_allocation * string * string * string -+ type poptions = bool * output_allocation * string * string * string - - type t = unit - -@@ -46,11 +46,22 @@ module Kubevirt = struct - | None -> "" - - let query_output_options () = -- printf (f_"No output options can be used in this mode.\n") -+ printf (f_"Output options that can be used with -o kubevirt: -+ -+ -oo compressed Compress the output file (used only with -of qcow2) -+") -+ - - let parse_options options source = -- if options.output_options <> [] then -- error (f_"no -oo (output options) are allowed here"); -+ let compressed = ref false in -+ List.iter ( -+ function -+ | "compressed", "" -> compressed := true -+ | "compressed", v -> compressed := bool_of_string v -+ | k, _ -> -+ error (f_"-o kubevirt: unknown output option ‘-oo %s’") k -+ ) options.output_options; -+ - if options.output_password <> None then - error_option_cannot_be_used_in_output_mode "kubevirt" "-op"; - -@@ -73,11 +84,13 @@ module Kubevirt = struct - end with an alphanumeric character. Rerun virt-v2v with \ - the '-on name' option to rename it."); - -- options.output_alloc, options.output_format, output_name, output_storage -+ !compressed, options.output_alloc, options.output_format, -+ output_name, output_storage - - let setup dir options source = - let disks = get_disks dir in -- let output_alloc, output_format, output_name, output_storage = options in -+ let compressed, output_alloc, output_format, output_name, output_storage = -+ options in - - List.iter ( - fun (i, size) -> -@@ -86,11 +99,12 @@ module Kubevirt = struct - - (* Create the actual output disk. *) - let outdisk = disk_path output_storage output_name i in -- output_to_local_file output_alloc output_format outdisk size socket -+ output_to_local_file ~compressed output_alloc output_format -+ outdisk size socket - ) disks - - let finalize dir options () source inspect target_meta = -- let output_alloc, output_format, output_name, output_storage = options in -+ let _, output_alloc, output_format, output_name, output_storage = options in - - let doc = create_kubevirt_yaml source inspect target_meta - (disk_path output_storage output_name) diff --git a/SOURCES/0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch b/SOURCES/0015-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch similarity index 91% rename from SOURCES/0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch rename to SOURCES/0015-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch index e770021..21292fe 100644 --- a/SOURCES/0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch +++ b/SOURCES/0015-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch @@ -1,4 +1,4 @@ -From da3ae25bdd18db8e4330f8b9c4d1c7bbb1f0df39 Mon Sep 17 00:00:00 2001 +From 5bdd4525570d58e7b712514f1ab57cb04f7cd8d8 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 28 Sep 2014 19:14:43 +0100 Subject: [PATCH] RHEL: v2v: Select correct qemu binary for -o qemu mode @@ -16,7 +16,7 @@ support cases. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/output_qemu.ml b/output/output_qemu.ml -index b667e782..3a57a009 100644 +index 1a5f7f71..97cf59a8 100644 --- a/output/output_qemu.ml +++ b/output/output_qemu.ml @@ -142,7 +142,7 @@ module QEMU = struct diff --git a/SOURCES/0015-v2v-Remove-use-of-anchored.patch b/SOURCES/0015-v2v-Remove-use-of-anchored.patch deleted file mode 100644 index 9a7053f..0000000 --- a/SOURCES/0015-v2v-Remove-use-of-anchored.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 8802e8b4135c913f206508c8f7650a9f99ee6667 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 30 Jan 2023 09:17:33 +0000 -Subject: [PATCH] v2v: Remove use of ~anchored - -In various places we used PCRE.compile ~anchored:true (PCRE2_ANCHORED) -thinking it means that the regular expression is anchored at both -ends. However this is not what it means (it only anchors the start). -Replace with ^...$ - -(cherry picked from commit 8c316ed125e26583edc72eb9e953499b0078dcbd) ---- - in-place/in_place.ml | 4 ++-- - inspector/inspector.ml | 4 ++-- - v2v/v2v.ml | 4 ++-- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/in-place/in_place.ml b/in-place/in_place.ml -index 55541814..f76651e6 100644 ---- a/in-place/in_place.ml -+++ b/in-place/in_place.ml -@@ -29,8 +29,8 @@ open Types - open Utils - - (* Matches --mac command line parameters. *) --let mac_re = PCRE.compile ~anchored:true "([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)" --let mac_ip_re = PCRE.compile ~anchored:true "([[:xdigit:]]|:|\\.)+" -+let mac_re = PCRE.compile "^([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)$" -+let mac_ip_re = PCRE.compile "^([[:xdigit:]]|:|\\.)+$" - - let rec main () = - let set_string_option_once optname optref arg = -diff --git a/inspector/inspector.ml b/inspector/inspector.ml -index 13d58df3..d12d85c2 100644 ---- a/inspector/inspector.ml -+++ b/inspector/inspector.ml -@@ -30,8 +30,8 @@ open Utils - open DOM - - (* Matches --mac command line parameters. *) --let mac_re = PCRE.compile ~anchored:true "([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)" --let mac_ip_re = PCRE.compile ~anchored:true "([[:xdigit:]]|:|\\.)+" -+let mac_re = PCRE.compile "^([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)$" -+let mac_ip_re = PCRE.compile "^([[:xdigit:]]|:|\\.)+$" - - let rec main () = - let set_string_option_once optname optref arg = -diff --git a/v2v/v2v.ml b/v2v/v2v.ml -index 1e8d03ef..7a01eab5 100644 ---- a/v2v/v2v.ml -+++ b/v2v/v2v.ml -@@ -34,8 +34,8 @@ open Types - open Utils - - (* Matches --mac command line parameters. *) --let mac_re = PCRE.compile ~anchored:true "([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)" --let mac_ip_re = PCRE.compile ~anchored:true "([[:xdigit:]]|:|\\.)+" -+let mac_re = PCRE.compile "^([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)$" -+let mac_ip_re = PCRE.compile "^([[:xdigit:]]|:|\\.)+$" - - let rec main () = - let set_string_option_once optname optref arg = diff --git a/SOURCES/0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch b/SOURCES/0016-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch similarity index 88% rename from SOURCES/0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch rename to SOURCES/0016-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch index 8573de6..47d3fe5 100644 --- a/SOURCES/0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch +++ b/SOURCES/0016-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch @@ -1,4 +1,4 @@ -From b638c2083ee9af57d036859e8a807ad56e9e9361 Mon Sep 17 00:00:00 2001 +From f063d97be8f13cc6526d3a4b4ec8be0b1d3c266f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" 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 b458607d..6cfe9e44 100644 +index bc946dc1..55545e11 100644 --- a/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod -@@ -144,11 +144,6 @@ Since F contains the path(s) to the guest disk +@@ -146,11 +146,6 @@ Since F 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 b458607d..6cfe9e44 100644 =head1 OPTIONS =over 4 -@@ -507,9 +502,6 @@ This is similar to I<-o local>, except that a shell script is written +@@ -522,9 +517,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 b458607d..6cfe9e44 100644 =item B<-o> B This is the same as I<-o rhv>. -@@ -588,11 +580,6 @@ For I<-o openstack> (L) only, set a guest ID +@@ -603,11 +595,6 @@ For I<-o openstack> (L) only, set a guest ID which is saved on each Cinder volume in the C volume property. @@ -81,7 +81,7 @@ index b458607d..6cfe9e44 100644 =item B<-oo verify-server-certificate> =item B<-oo verify-server-certificate=>C -@@ -763,10 +750,6 @@ Print information about the source guest and stop. This option is +@@ -778,10 +765,6 @@ Print information about the source guest and stop. This option is useful when you are setting up network and bridge maps. See L. @@ -93,7 +93,7 @@ index b458607d..6cfe9e44 100644 =item B<--quiet> diff --git a/output/output_qemu.ml b/output/output_qemu.ml -index 3a57a009..4be9b650 100644 +index 97cf59a8..ad3eb897 100644 --- a/output/output_qemu.ml +++ b/output/output_qemu.ml @@ -65,6 +65,9 @@ module QEMU = struct @@ -107,10 +107,10 @@ index 3a57a009..4be9b650 100644 let output_storage = match options.output_storage with diff --git a/v2v/v2v.ml b/v2v/v2v.ml -index 7a01eab5..dc747804 100644 +index 3b2eafbd..696ef75e 100644 --- a/v2v/v2v.ml +++ b/v2v/v2v.ml -@@ -272,8 +272,6 @@ let rec main () = +@@ -275,8 +275,6 @@ let rec main () = s_"Same as ‘-ip filename’"; [ L"print-source" ], Getopt.Set print_source, s_"Print source and stop"; diff --git a/SOURCES/0016-o-kubevirt-Replace-PCRE-anchored-with.patch b/SOURCES/0016-o-kubevirt-Replace-PCRE-anchored-with.patch deleted file mode 100644 index d5a09b0..0000000 --- a/SOURCES/0016-o-kubevirt-Replace-PCRE-anchored-with.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 628ee708464ee3d266609167c48e92f883849e4d Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 30 Jan 2023 09:01:38 +0000 -Subject: [PATCH] -o kubevirt: Replace PCRE ~anchored with ^...$ - -Because this regexp was not anchored at both ends it would still -report a match for incorrect names. - -Fixes: commit 8a9c914544a49bed13eb5baf42290f835bdee7b5 -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2162332 -Reported-by: Ming Xie - -Cherry picked from commit 050a0ba714ddf2a5d81515c886032016aa75342c. -I did not include the update to the common module since picking that -would pull in the large changes made to the virtio driver code. ---- - output/output_kubevirt.ml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/output/output_kubevirt.ml b/output/output_kubevirt.ml -index ee89fdbf..fdf0f279 100644 ---- a/output/output_kubevirt.ml -+++ b/output/output_kubevirt.ml -@@ -31,8 +31,8 @@ open Create_kubevirt_yaml - - (* Valid output names for Kubevirt (RHBZ#2162332). *) - let rfc1123_re = -- PCRE.compile ~anchored:true -- "[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*" -+ PCRE.compile -+ "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$" - - module Kubevirt = struct - type poptions = bool * output_allocation * string * string * string diff --git a/SOURCES/0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch b/SOURCES/0017-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch similarity index 88% rename from SOURCES/0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch rename to SOURCES/0017-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch index f4be098..c16597a 100644 --- a/SOURCES/0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch +++ b/SOURCES/0017-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch @@ -1,4 +1,4 @@ -From d8a6a0577f0a85387a6acf394f3523674c1b704f Mon Sep 17 00:00:00 2001 +From 6cee48bde007be6c8242c9e1a3b83bc153c566d9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 24 Apr 2015 09:45:41 -0400 Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu @@ -9,7 +9,7 @@ Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/utils.ml b/lib/utils.ml -index 281868b5..e63ec7ce 100644 +index 19c5ba91..7b3aa2e2 100644 --- a/lib/utils.ml +++ b/lib/utils.ml @@ -60,13 +60,14 @@ let kvm_arch = function diff --git a/SOURCES/0017-o-libvirt-Add-correct-xmlns-libosinfo-for-Rocky-Linu.patch b/SOURCES/0017-o-libvirt-Add-correct-xmlns-libosinfo-for-Rocky-Linu.patch deleted file mode 100644 index ba3b352..0000000 --- a/SOURCES/0017-o-libvirt-Add-correct-xmlns-libosinfo-for-Rocky-Linu.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a9630d3981cbf7f6083e82f4e22cff981d11a8b3 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Thu, 2 Feb 2023 12:29:00 +0000 -Subject: [PATCH] -o libvirt: Add correct xmlns:libosinfo for Rocky Linux - -Also a small whitespace fix and improve the warning message. - -Updates: commit db831c167b7bf757aa79dbe3db5fa8c5fd8cfc99 -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2166618 -Reported-by: Ming Xie -(cherry picked from commit ebfdca56bca69284f289e3db8a6e6baf6bc617f0) ---- - output/create_libvirt_xml.ml | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/output/create_libvirt_xml.ml b/output/create_libvirt_xml.ml -index e1c1f616..388fae5b 100644 ---- a/output/create_libvirt_xml.ml -+++ b/output/create_libvirt_xml.ml -@@ -47,6 +47,10 @@ let get_osinfo_id = function - when major >= 8 -> - Some (sprintf "http://centos.org/centos/%d" major) - -+ | { i_type = "linux"; i_distro = "rocky"; -+ i_major_version = major; i_minor_version = minor } -> -+ Some (sprintf "http://rockylinux.org/rocky/%d.%d" major minor) -+ - | { i_type = "linux"; i_distro = "sles"; - i_major_version = major; i_minor_version = 0; - i_product_name = product } when String.find product "Desktop" >= 0 -> -@@ -140,7 +144,8 @@ let get_osinfo_id = function - | { i_type = typ; i_distro = distro; - i_major_version = major; i_minor_version = minor; i_arch = arch; - i_product_name = product } -> -- warning (f_"unknown guest operating system: %s %s %d.%d %s (%s)") -+ warning (f_"get_osinfo_id: unknown guest operating system: \ -+ %s %s %d.%d %s (%s)") - typ distro major minor arch product; - None - -@@ -160,7 +165,6 @@ let create_libvirt_xml ?pool source inspect - | Some genid -> List.push_back body (e "genid" [] [PCData genid]) - ); - -- - (match get_osinfo_id inspect with - | None -> () - | Some osinfo_id -> diff --git a/SOURCES/0024-RHEL-Fixes-for-libguestfs-winsupport.patch b/SOURCES/0018-RHEL-Fixes-for-libguestfs-winsupport.patch similarity index 75% rename from SOURCES/0024-RHEL-Fixes-for-libguestfs-winsupport.patch rename to SOURCES/0018-RHEL-Fixes-for-libguestfs-winsupport.patch index b252b1a..e83c766 100644 --- a/SOURCES/0024-RHEL-Fixes-for-libguestfs-winsupport.patch +++ b/SOURCES/0018-RHEL-Fixes-for-libguestfs-winsupport.patch @@ -1,23 +1,26 @@ -From 94f4aaeea12ac37a5b7515251040ce3e6fd86171 Mon Sep 17 00:00:00 2001 +From 7374efa8aecb97a83a1ec6d4d606651a4eb569e4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 30 Aug 2015 03:21:57 -0400 Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport. In tests we cannot use guestfish for arbitrary Windows edits. In virt-v2v helpers we must set the program name to virt-v2v. + +For RHEL 9.3 and above, see this comment: +https://bugzilla.redhat.com/show_bug.cgi?id=2187961#c1 --- convert/convert.ml | 1 + - convert/windows_virtio.ml | 1 + test-data/phony-guests/make-windows-img.sh | 1 + + tests/test-v2v-block-driver.sh | 6 +++++- tests/test-v2v-virtio-win-iso.sh | 8 +++++++- tests/test-v2v-windows-conversion.sh | 8 +++++++- - 5 files changed, 17 insertions(+), 2 deletions(-) + 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/convert/convert.ml b/convert/convert.ml -index d0d5b773..c3dd4151 100644 +index 9c76f76d..caaa707e 100644 --- a/convert/convert.ml +++ b/convert/convert.ml -@@ -51,6 +51,7 @@ let rec convert dir options source = +@@ -52,6 +52,7 @@ let rec convert dir options source = message (f_"Opening the source"); let g = open_guestfs ~identifier:"v2v" () in @@ -25,18 +28,6 @@ index d0d5b773..c3dd4151 100644 g#set_memsize (g#get_memsize () * 2); (* 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/convert/windows_virtio.ml b/convert/windows_virtio.ml -index 6b642d21..2cef4234 100644 ---- a/convert/windows_virtio.ml -+++ b/convert/windows_virtio.ml -@@ -256,6 +256,7 @@ and copy_from_virtio_win g inspect srcdir destdir filter missing = - let g2 = - try - let g2 = open_guestfs ~identifier:"virtio_win" () in -+ g#set_program "virt-v2v"; - g2#add_drive_opts virtio_win ~readonly:true; - g2#launch (); - g2 diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh index 30908a91..73cf5144 100755 --- a/test-data/phony-guests/make-windows-img.sh @@ -49,6 +40,23 @@ index 30908a91..73cf5144 100755 sparse windows.img-t 512M run +diff --git a/tests/test-v2v-block-driver.sh b/tests/test-v2v-block-driver.sh +index db59a2cf..a0e56bed 100755 +--- a/tests/test-v2v-block-driver.sh ++++ b/tests/test-v2v-block-driver.sh +@@ -100,7 +100,11 @@ check_driver_presence () + + local virtio_dir="/Windows/Drivers/VirtIO" + +- guestfish --ro -a "$img" -i >$response <<-EOM ++ guestfish >$response <<-EOM ++ add-ro $img ++ set-program virt-testing ++ run ++ mount-ro /dev/sda2 / + is-dir $virtio_dir + is-file $virtio_dir/$drv.cat + is-file $virtio_dir/$drv.inf diff --git a/tests/test-v2v-virtio-win-iso.sh b/tests/test-v2v-virtio-win-iso.sh index 69f6f414..b9b806fb 100755 --- a/tests/test-v2v-virtio-win-iso.sh diff --git a/SOURCES/0018-convert-linux-Require-host-cpu-for-all-RHEL-alike-9.patch b/SOURCES/0018-convert-linux-Require-host-cpu-for-all-RHEL-alike-9.patch deleted file mode 100644 index 351cb73..0000000 --- a/SOURCES/0018-convert-linux-Require-host-cpu-for-all-RHEL-alike-9.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 227313ca73d24eaaa0b82aca94de2278bca0f95b Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 6 Feb 2023 12:13:25 +0000 -Subject: [PATCH] convert: linux: Require host cpu for all RHEL-alike >= 9 - -RHEL >= 9 and compatible distros like Rocky >= 9 will not boot using -the default qemu CPU. You will see an error at boot: - - Fatal glibc error: CPU does not support x86-64-v2 - -Instead you need to use -cpu host. - -In commit f28757c6d1 ("convert_linux: set "gcaps_default_cpu = false" -for x86_64 RHEL-9.0+ guests") we fixed this specifically for RHEL >= 9. - -This commit extends the same fix to all RHEL family distros. - -Updates: commit f28757c6d100060c65212ea55cfa59d308dcb850 -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2166619 -Reported-by: Ming Xie -Thanks: Laszlo Ersek -(cherry picked from commit 9f12b95bbe7bc2850ce4ba134c46a3cc5fd1167d) ---- - convert/convert_linux.ml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml -index 41767e62..27bc4ae4 100644 ---- a/convert/convert_linux.ml -+++ b/convert/convert_linux.ml -@@ -202,9 +202,9 @@ let convert (g : G.guestfs) source inspect keep_serial_console _ = - - (* RHEL >= 9.0 on x86_64 requires the processor to support the "x86-64-v2" - * microarchitecture level, which the default QEMU VCPU model does not -- * satisfy. Refer to RHBZ#2076013. -+ * satisfy. Refer to RHBZ#2076013 RHBZ#2166619. - *) -- let default_cpu_suffices = inspect.i_distro <> "rhel" || -+ let default_cpu_suffices = family <> `RHEL_family || - inspect.i_arch <> "x86_64" || - inspect.i_major_version < 9 in - diff --git a/SOURCES/0025-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch b/SOURCES/0019-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch similarity index 93% rename from SOURCES/0025-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch rename to SOURCES/0019-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch index 67a1fd9..2df8b46 100644 --- a/SOURCES/0025-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch +++ b/SOURCES/0019-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch @@ -1,4 +1,4 @@ -From ffcd5358b8f6e39962edc91aa036089adc4fcdb0 Mon Sep 17 00:00:00 2001 +From 8b2bb3c153b44634fb3f93aae1c0c40655213506 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 2 Mar 2017 14:21:37 +0100 Subject: [PATCH] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671) diff --git a/SOURCES/0019-detect_kernels-tighten-try-scope.patch b/SOURCES/0019-detect_kernels-tighten-try-scope.patch deleted file mode 100644 index 005f3bb..0000000 --- a/SOURCES/0019-detect_kernels-tighten-try-scope.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e7aa456e26e59bfa5cca1299ef2cb5299592d9da Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 5 Apr 2023 17:08:28 +0200 -Subject: [PATCH] detect_kernels: tighten "try" scope - -We want to catch Not_found from (our own implementation of) -"List.find_map". There's no need (and it makes no sense) to push the -"prefix_len" calculation down into the "try" scope. Keep the "try" scope -as narrow as possible. - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2175703 -Signed-off-by: Laszlo Ersek -Tested-by: Vera Wu -(ported from libguestfs-common commit 4003815a994944cab38d48cfc96f16382de62987) -Message-Id: <20230405150829.171720-2-lersek@redhat.com> -Reviewed-by: Richard W.M. Jones ---- - convert/linux_kernels.ml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/convert/linux_kernels.ml b/convert/linux_kernels.ml -index 6e9d2bdd..75ab94c4 100644 ---- a/convert/linux_kernels.ml -+++ b/convert/linux_kernels.ml -@@ -122,8 +122,8 @@ let detect_kernels (g : G.guestfs) inspect family bootloader = - *) - let modpath, version = - let prefix = "/lib/modules/" in -+ let prefix_len = String.length prefix in - try -- let prefix_len = String.length prefix in - List.find_map ( - fun filename -> - let filename_len = String.length filename in diff --git a/SOURCES/0026-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch b/SOURCES/0020-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch similarity index 87% rename from SOURCES/0026-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch rename to SOURCES/0020-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch index 180064f..689f21f 100644 --- a/SOURCES/0026-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch +++ b/SOURCES/0020-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch @@ -1,4 +1,4 @@ -From 907b8c0f9f0aaf3cf5ec71c8371ea252c4acf357 Mon Sep 17 00:00:00 2001 +From 28e3b929b94e213bc24fa27c58215fe8ccdb9ba1 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Wed, 8 Mar 2017 11:03:40 +0100 Subject: [PATCH] RHEL: v2v: do not mention SUSE Xen hosts (RHBZ#1430203) @@ -9,7 +9,7 @@ They are not supported in RHEL. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/virt-v2v-input-xen.pod b/docs/virt-v2v-input-xen.pod -index 4a0544f8..9c3981e1 100644 +index 38dc8f7b..05c4e3f5 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 diff --git a/SOURCES/0020-detect_kernels-deal-with-RHEL-s-kernel-core-kernel-m.patch b/SOURCES/0020-detect_kernels-deal-with-RHEL-s-kernel-core-kernel-m.patch deleted file mode 100644 index 6d6c08f..0000000 --- a/SOURCES/0020-detect_kernels-deal-with-RHEL-s-kernel-core-kernel-m.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 9449d21eeae81d4283e74d7cdccf776e695783f0 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 5 Apr 2023 17:08:29 +0200 -Subject: [PATCH] detect_kernels: deal with RHEL's kernel-core / - kernel-modules-core split - -In "kernel-5.14.0-269.el9", the "kernel-modules-core" subpackage got split -from the "kernel-core" subpackage. Therefore, a single binary RPM -containing *both* the "/boot/vmlinuz-5.14.0-269.el9.x86_64" file *and* the -"/lib/modules/5.14.0-269.el9.x86_64" directory no longer exists. The file -now belongs to "kernel-core", and the directory to "kernel-modules-core". - -As a result, when we investigate the file list of "kernel-core" (based on -"kernel-core" providing "/boot/vmlinuz-5.14.0-269.el9.x86_64"), the first -match against "/lib/modules/" is not the actual module root directory -"/lib/modules/5.14.0-269.el9.x86_64", but the nonsensical -"/lib/modules/5.14.0-269.el9.x86_64/.vmlinuz.hmac" regular file. This -latter file is never a directory, therefore we rule out "kernel-core" as a -kernel package. - -We also rule out "kernel-modules-core" (even earlier) because it does not -contain "/boot/vmlinuz-5.14.0-269.el9.x86_64". - -Now, the code already deals with the case if the prospective kernel -package *does not provide a match* for the "/lib/modules/" prefix: in that -case, we construct the modpath manually, from said prefix, and the version -number found in "/boot/vmlinuz-". This fallback is good, but it's -unreachable if *there is* a candidate, it's just wrong (i.e., not a -directory). - -Perform the "is_dir" check on the candidate modpath earlier, so that we -can fall back to the manual modpath construction if the modpath candidate -exists, but is wrong. - -With this, the original "is_dir" check becomes superfluous (duplicated) -*except* when the "Not_found" branch is taken. Therefore, hoist the -original "is_dir" check into that branch. - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2175703 -Reported-by: Vera Wu -Signed-off-by: Laszlo Ersek -Tested-by: Vera Wu -(ported from libguestfs-common commit 70c10a079a30ff3a84f38596d725a6c5d46e2470) -Message-Id: <20230405150829.171720-3-lersek@redhat.com> -Reviewed-by: Richard W.M. Jones ---- - convert/linux_kernels.ml | 24 ++++++++++++++++++------ - 1 file changed, 18 insertions(+), 6 deletions(-) - -diff --git a/convert/linux_kernels.ml b/convert/linux_kernels.ml -index 75ab94c4..d0b31643 100644 ---- a/convert/linux_kernels.ml -+++ b/convert/linux_kernels.ml -@@ -124,7 +124,7 @@ let detect_kernels (g : G.guestfs) inspect family bootloader = - let prefix = "/lib/modules/" in - let prefix_len = String.length prefix in - try -- List.find_map ( -+ let modpath, version = List.find_map ( - fun filename -> - let filename_len = String.length filename in - if filename_len > prefix_len && -@@ -134,17 +134,29 @@ let detect_kernels (g : G.guestfs) inspect family bootloader = - Some (filename, version) - ) else - None -- ) files -+ ) files in -+ (* Fall back to the version in the vmlinuz file name not only if -+ * a candidate pathname couldn't be found under /lib/modules/, -+ * but also in case the candidate pathname doesn't reference a -+ * directory. See RHBZ#2175703. -+ * -+ * Note that this "is_dir" check is deliberately kept outside of -+ * the "find_map"'s mapper function above: we want the first -+ * candidate *to be* a directory, and not the first candidate -+ * *that is* a directory. -+ *) -+ if not (g#is_dir ~followsymlinks:true modpath) then -+ raise Not_found; -+ modpath, version - with Not_found -> - let version = - String.sub vmlinuz 14 (String.length vmlinuz - 14) in - let modpath = prefix ^ version in -+ (* Check that the modpath exists. *) -+ if not (g#is_dir ~followsymlinks:true modpath) then -+ raise Not_found; - modpath, version in - -- (* Check that the modpath exists. *) -- if not (g#is_dir ~followsymlinks:true modpath) then -- raise Not_found; -- - (* Find the initramfs which corresponds to the kernel. - * Since the initramfs is built at runtime, and doesn't have - * to be covered by the RPM file list, this is basically diff --git a/SOURCES/0027-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch b/SOURCES/0021-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch similarity index 92% rename from SOURCES/0027-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch rename to SOURCES/0021-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch index 55b7d28..0c822ed 100644 --- a/SOURCES/0027-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch +++ b/SOURCES/0021-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch @@ -1,4 +1,4 @@ -From ee2bf7286e96419df09d86ddf0eeb31ad869ff92 Mon Sep 17 00:00:00 2001 +From a2e7cf38ee640e9e806a680cf55f78d33a3c0ee8 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Tue, 26 Mar 2019 09:42:25 +0100 Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests @@ -8,7 +8,7 @@ Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests 1 file changed, 4 insertions(+), 100 deletions(-) diff --git a/docs/virt-v2v-support.pod b/docs/virt-v2v-support.pod -index 9815f51f..1ffc0f9d 100644 +index 8b64a5ea..1ffc0f9d 100644 --- a/docs/virt-v2v-support.pod +++ b/docs/virt-v2v-support.pod @@ -8,106 +8,10 @@ systems and guests in virt-v2v @@ -84,11 +84,11 @@ index 9815f51f..1ffc0f9d 100644 - -=over 4 - --=item Red Hat Enterprise Linux 3, 4, 5, 6, 7 +-=item Red Hat Enterprise Linux 4, 5, 6, 7 - --=item CentOS 3, 4, 5, 6, 7 +-=item CentOS 4, 5, 6, 7 - --=item Scientific Linux 3, 4, 5, 6, 7 +-=item Scientific Linux 4, 5, 6, 7 - -=item Oracle Linux - diff --git a/SOURCES/0028-RHEL-Disable-o-glance.patch b/SOURCES/0022-RHEL-Disable-o-glance.patch similarity index 88% rename from SOURCES/0028-RHEL-Disable-o-glance.patch rename to SOURCES/0022-RHEL-Disable-o-glance.patch index 2d84f62..f06aa76 100644 --- a/SOURCES/0028-RHEL-Disable-o-glance.patch +++ b/SOURCES/0022-RHEL-Disable-o-glance.patch @@ -1,19 +1,19 @@ -From 2d85522fe7b03207573952a7d95b0f621e3ff52e Mon Sep 17 00:00:00 2001 +From 29b43856a1429148eece11f0579a01026d583161 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 30 Jun 2021 11:15:52 +0100 Subject: [PATCH] RHEL: Disable -o glance Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1977539 --- - docs/virt-v2v-output-openstack.pod | 56 ++---------------------------- + docs/virt-v2v-output-openstack.pod | 54 ++---------------------------- docs/virt-v2v.pod | 20 ----------- output/output_glance.mli | 2 +- tests/test-v2v-o-glance.sh | 3 ++ v2v/v2v.ml | 7 +--- - 5 files changed, 7 insertions(+), 81 deletions(-) + 5 files changed, 7 insertions(+), 79 deletions(-) diff --git a/docs/virt-v2v-output-openstack.pod b/docs/virt-v2v-output-openstack.pod -index f5a3abad..1ab356e8 100644 +index cd4862b1..54cd276e 100644 --- a/docs/virt-v2v-output-openstack.pod +++ b/docs/virt-v2v-output-openstack.pod @@ -10,13 +10,10 @@ virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack @@ -47,7 +47,7 @@ index f5a3abad..1ab356e8 100644 =back =head1 OUTPUT TO OPENSTACK -@@ -170,50 +158,10 @@ no Cinder volume type is used. +@@ -176,48 +164,10 @@ no Cinder volume type is used. The following options are B supported with OpenStack: I<-oa>, I<-of>. @@ -60,10 +60,8 @@ index f5a3abad..1ab356e8 100644 - -This runs the L CLI program which must be installed on the -virt-v2v conversion host. For authentication to work, you will need --to set C environment variables. -- --Normally there is a file called C or C --which you can simply C to set everything up. +-to set C environment variables. See +-L above. - -Virt-v2v adds metadata for the guest to Glance, describing such things -as the guest operating system and what drivers it requires. The @@ -100,10 +98,10 @@ index f5a3abad..1ab356e8 100644 =head1 AUTHOR diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod -index 6cfe9e44..d161b63f 100644 +index 55545e11..8d5d54d3 100644 --- a/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod -@@ -421,14 +421,6 @@ See L below. +@@ -435,14 +435,6 @@ See L below. This is the same as I<-o local>. @@ -118,7 +116,7 @@ index 6cfe9e44..d161b63f 100644 =item B<-o> B Set the output method to I. B (or F). @@ -130,7 +128,7 @@ index 6cfe9e44..d161b63f 100644 =item I<-o local> =item I<-o qemu> -@@ -1360,13 +1347,6 @@ instance. +@@ -1377,13 +1364,6 @@ See also L. Because of how Cinder volumes are presented as F block devices, using I<-o openstack> normally requires that virt-v2v is run as root. @@ -169,10 +167,10 @@ index c0db9115..074b5e16 100755 set -e set -x diff --git a/v2v/v2v.ml b/v2v/v2v.ml -index dc747804..392c3dad 100644 +index 696ef75e..47d2da79 100644 --- a/v2v/v2v.ml +++ b/v2v/v2v.ml -@@ -194,7 +194,6 @@ let rec main () = +@@ -195,7 +195,6 @@ let rec main () = if !output_mode <> `Not_set then error (f_"%s option used more than once on the command line") "-o"; match mode with @@ -180,7 +178,7 @@ index dc747804..392c3dad 100644 | "kubevirt" -> output_mode := `Kubevirt | "libvirt" -> output_mode := `Libvirt | "disk" | "local" -> output_mode := `Disk -@@ -252,7 +251,7 @@ let rec main () = +@@ -255,7 +254,7 @@ let rec main () = s_"Map network ‘in’ to ‘out’"; [ L"no-trim" ], Getopt.String ("-", no_trim_warning), s_"Ignored for backwards compatibility"; @@ -189,7 +187,7 @@ index dc747804..392c3dad 100644 s_"Set output mode (default: libvirt)"; [ M"oa" ], Getopt.String ("sparse|preallocated", set_output_alloc), s_"Set output allocation mode"; -@@ -320,8 +319,6 @@ virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp +@@ -323,8 +322,6 @@ virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp virt-v2v -i disk disk.img -o local -os /var/tmp @@ -198,7 +196,7 @@ index dc747804..392c3dad 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. -@@ -390,7 +387,6 @@ read the man page virt-v2v(1). +@@ -399,7 +396,6 @@ read the man page virt-v2v(1). pr "input:libvirtxml\n"; pr "input:ova\n"; pr "input:vmx\n"; @@ -206,7 +204,7 @@ index dc747804..392c3dad 100644 pr "output:kubevirt\n"; pr "output:libvirt\n"; pr "output:local\n"; -@@ -487,7 +483,6 @@ read the man page virt-v2v(1). +@@ -496,7 +492,6 @@ read the man page virt-v2v(1). | `Disk -> (module Output_disk.Disk) | `Null -> (module Output_null.Null) | `QEmu -> (module Output_qemu.QEMU) diff --git a/SOURCES/0029-RHEL-Remove-the-in-place-option.patch b/SOURCES/0023-RHEL-Remove-the-in-place-option.patch similarity index 89% rename from SOURCES/0029-RHEL-Remove-the-in-place-option.patch rename to SOURCES/0023-RHEL-Remove-the-in-place-option.patch index cb86651..ea6a3c9 100644 --- a/SOURCES/0029-RHEL-Remove-the-in-place-option.patch +++ b/SOURCES/0023-RHEL-Remove-the-in-place-option.patch @@ -1,4 +1,4 @@ -From 8fbfb57de81e9962eacc493338aee6162fefb510 Mon Sep 17 00:00:00 2001 +From cbebfa10e481a664a949ff07dfceca5cb45793df Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 2 Dec 2021 11:56:05 +0000 Subject: [PATCH] RHEL: Remove the --in-place option @@ -12,7 +12,7 @@ wish to support in RHEL. 3 files changed, 17 deletions(-) diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod -index d161b63f..0394b421 100644 +index 8d5d54d3..0738f492 100644 --- a/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod @@ -24,9 +24,6 @@ virtualize those machines (physical to virtual, or p2v). @@ -36,7 +36,7 @@ index d161b63f..0394b421 100644 =head2 Other virt-v2v topics L — Supported hypervisors, virtualization -@@ -1612,7 +1605,6 @@ L, L, @@ -45,7 +45,7 @@ index d161b63f..0394b421 100644 L, L, diff --git a/tests/Makefile.am b/tests/Makefile.am -index a4c87398..998b871d 100644 +index 5c523204..5190d055 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -77,7 +77,6 @@ TESTS = \ @@ -53,14 +53,14 @@ index a4c87398..998b871d 100644 test-v2v-i-disk.sh \ test-v2v-i-ova.sh \ - test-v2v-in-place.sh \ + test-v2v-block-driver.sh \ test-v2v-inspector.sh \ test-v2v-mac.sh \ - test-v2v-machine-readable.sh \ diff --git a/v2v/v2v.ml b/v2v/v2v.ml -index 392c3dad..18a694ee 100644 +index 47d2da79..19f08aae 100644 --- a/v2v/v2v.ml +++ b/v2v/v2v.ml -@@ -216,12 +216,6 @@ let rec main () = +@@ -217,12 +217,6 @@ let rec main () = warning (f_"the --vmtype option has been removed and now does nothing") in @@ -73,7 +73,7 @@ index 392c3dad..18a694ee 100644 let argspec = [ [ L"bandwidth" ], Getopt.String ("bps", set_string_option_once "--bandwidth" bandwidth), s_"Set bandwidth to bits per sec"; -@@ -243,8 +237,6 @@ let rec main () = +@@ -246,8 +240,6 @@ let rec main () = s_"Use password from file to connect to input hypervisor"; [ M"it" ], Getopt.String ("transport", set_string_option_once "-it" input_transport), s_"Input transport"; diff --git a/SOURCES/0030-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch b/SOURCES/0024-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch similarity index 93% rename from SOURCES/0030-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch rename to SOURCES/0024-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch index 1130f89..2736740 100644 --- a/SOURCES/0030-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch +++ b/SOURCES/0024-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch @@ -1,4 +1,4 @@ -From b04577d80b8933a04b1863727cabefc48d6ae0da Mon Sep 17 00:00:00 2001 +From aec57da776543ede26a2f751594686ad36b51bad Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 5 Jul 2022 11:56:54 +0100 Subject: [PATCH] RHEL 9: -oo compressed: Remove nbdcopy version check and test @@ -34,10 +34,10 @@ index e419c13d..c8f743c2 100644 let g = open_guestfs () in diff --git a/tests/Makefile.am b/tests/Makefile.am -index 998b871d..8cf17f94 100644 +index 5190d055..5169e2a6 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am -@@ -83,7 +83,6 @@ TESTS = \ +@@ -84,7 +84,6 @@ TESTS = \ test-v2v-networks-and-bridges.sh \ test-v2v-o-glance.sh \ test-v2v-o-libvirt.sh \ diff --git a/SOURCES/0031-RHEL-9-tests-Remove-btrfs-test.patch b/SOURCES/0025-RHEL-9-tests-Remove-btrfs-test.patch similarity index 83% rename from SOURCES/0031-RHEL-9-tests-Remove-btrfs-test.patch rename to SOURCES/0025-RHEL-9-tests-Remove-btrfs-test.patch index ddb29fa..5ca58dc 100644 --- a/SOURCES/0031-RHEL-9-tests-Remove-btrfs-test.patch +++ b/SOURCES/0025-RHEL-9-tests-Remove-btrfs-test.patch @@ -1,4 +1,4 @@ -From 462f9b9eb810a5ac26f610d03b601906c9bc674e Mon Sep 17 00:00:00 2001 +From d9c11fcfdf832f9d3d35855e7e7458efc1908515 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 5 Jul 2022 11:58:09 +0100 Subject: [PATCH] RHEL 9: tests: Remove btrfs test @@ -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 8cf17f94..8b2a8685 100644 +index 5169e2a6..a1c61f8f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am -@@ -97,7 +97,6 @@ TESTS = \ +@@ -98,7 +98,6 @@ TESTS = \ test-v2v-sound.sh \ test-v2v-virtio-win-iso.sh \ test-v2v-fedora-conversion.sh \ diff --git a/SOURCES/0026-RHEL-9-Remove-block-driver-option.patch b/SOURCES/0026-RHEL-9-Remove-block-driver-option.patch new file mode 100644 index 0000000..d856392 --- /dev/null +++ b/SOURCES/0026-RHEL-9-Remove-block-driver-option.patch @@ -0,0 +1,157 @@ +From 3e2962dad1245b8c7d1255faaa6820adc0648d14 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Fri, 28 Apr 2023 12:28:19 +0100 +Subject: [PATCH] RHEL 9: Remove --block-driver option + +Go back to the old default of always installing virtio-blk drivers in +Windows guests. + +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2190387 +--- + docs/virt-v2v-in-place.pod | 10 ---------- + docs/virt-v2v.pod | 10 ---------- + in-place/in_place.ml | 11 +---------- + tests/Makefile.am | 1 - + v2v/v2v.ml | 11 +---------- + 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 +--- a/docs/virt-v2v-in-place.pod ++++ b/docs/virt-v2v-in-place.pod +@@ -47,16 +47,6 @@ Display help. + + See I<--network> below. + +-=item B<--block-driver> B +- +-=item B<--block-driver> B +- +-When choosing a block driver for Windows guests, prefer C or +-C. The default is C. +- +-Note this has no effect for Linux guests at the moment. That may be +-added in future. +- + =item B<--colors> + + =item B<--colours> +diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod +index 0738f492..021ac897 100644 +--- a/docs/virt-v2v.pod ++++ b/docs/virt-v2v.pod +@@ -197,16 +197,6 @@ The options are silently ignored for other input methods. + + See I<--network> below. + +-=item B<--block-driver> B +- +-=item B<--block-driver> B +- +-When choosing a block driver for Windows guests, prefer C or +-C. The default is C. +- +-Note this has no effect for Linux guests at the moment. That may be +-added in future. +- + =item B<--colors> + + =item B<--colours> +diff --git a/in-place/in_place.ml b/in-place/in_place.ml +index e8c260c2..2049db16 100644 +--- a/in-place/in_place.ml ++++ b/in-place/in_place.ml +@@ -43,7 +43,6 @@ let rec main () = + + let bandwidth = ref None in + let bandwidth_file = ref None in +- let block_driver = ref None in + let input_conn = ref None in + let input_format = ref None in + let input_password = ref None in +@@ -157,8 +156,6 @@ let rec main () = + let argspec = [ + [ S 'b'; L"bridge" ], Getopt.String ("in:out", add_bridge), + s_"Map bridge ‘in’ to ‘out’"; +- [ L"block-driver" ], Getopt.String ("driver", set_string_option_once "--block-driver" block_driver), +- s_"Prefer 'virtio-blk' or 'virtio-scsi'"; + [ S 'i' ], Getopt.String ("disk|libvirt|libvirtxml|ova|vmx", set_input_mode), + s_"Set input mode (default: libvirt)"; + [ M"ic" ], Getopt.String ("uri", set_string_option_once "-ic" input_conn), +@@ -214,12 +211,6 @@ read the man page virt-v2v-in-place(1). + + (* Dereference the arguments. *) + let args = List.rev !args in +- let block_driver = +- match !block_driver with +- | None | Some "virtio-blk" -> Virtio_blk +- | Some "virtio-scsi" -> Virtio_SCSI +- | Some driver -> +- error (f_"unknown block driver ‘--block-driver %s’") driver in + let input_conn = !input_conn in + let input_mode = !input_mode in + let print_source = !print_source in +@@ -303,7 +294,7 @@ read the man page virt-v2v-in-place(1). + + (* Get the conversion options. *) + let conv_options = { +- Convert.block_driver = block_driver; ++ Convert.block_driver = Virtio_blk; + keep_serial_console = true; + ks = opthandle.ks; + network_map; +diff --git a/tests/Makefile.am b/tests/Makefile.am +index a1c61f8f..8e22ab64 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -77,7 +77,6 @@ TESTS = \ + test-v2v-floppy.sh \ + test-v2v-i-disk.sh \ + test-v2v-i-ova.sh \ +- test-v2v-block-driver.sh \ + test-v2v-inspector.sh \ + test-v2v-mac.sh \ + test-v2v-machine-readable.sh \ +diff --git a/v2v/v2v.ml b/v2v/v2v.ml +index 19f08aae..89c08fc5 100644 +--- a/v2v/v2v.ml ++++ b/v2v/v2v.ml +@@ -48,7 +48,6 @@ let rec main () = + + let bandwidth = ref None in + let bandwidth_file = ref None in +- let block_driver = ref None in + let input_conn = ref None in + let input_format = ref None in + let input_password = ref None in +@@ -224,8 +223,6 @@ let rec main () = + s_"Set bandwidth dynamically from file"; + [ S 'b'; L"bridge" ], Getopt.String ("in:out", add_bridge), + s_"Map bridge ‘in’ to ‘out’"; +- [ L"block-driver" ], Getopt.String ("driver", set_string_option_once "--block-driver" block_driver), +- s_"Prefer 'virtio-blk' or 'virtio-scsi'"; + [ L"compressed" ], Getopt.Unit (fun () -> set_output_option_compat "compressed" ""), + s_"Compress output file (-of qcow2 only)"; + [ S 'i' ], Getopt.String ("disk|libvirt|libvirtxml|ova|vmx", set_input_mode), +@@ -341,12 +338,6 @@ read the man page virt-v2v(1). + + (* Dereference the arguments. *) + let args = List.rev !args in +- let block_driver = +- match !block_driver with +- | None | Some "virtio-blk" -> Virtio_blk +- | Some "virtio-scsi" -> Virtio_SCSI +- | Some driver -> +- error (f_"unknown block driver ‘--block-driver %s’") driver in + let input_conn = !input_conn in + let input_mode = !input_mode in + let input_transport = +@@ -518,7 +509,7 @@ read the man page virt-v2v(1). + + (* Get the conversion options. *) + let conv_options = { +- Convert.block_driver = block_driver; ++ Convert.block_driver = Virtio_blk; + keep_serial_console = not remove_serial_console; + ks = opthandle.ks; + network_map; diff --git a/SOURCES/copy-patches.sh b/SOURCES/copy-patches.sh index f7dd9d9..881f822 100755 --- a/SOURCES/copy-patches.sh +++ b/SOURCES/copy-patches.sh @@ -7,7 +7,7 @@ set -e # ./copy-patches.sh project=virt-v2v -rhel_version=9.2 +rhel_version=9.4 # Check we're in the right directory. if [ ! -f $project.spec ]; then diff --git a/SOURCES/virt-v2v-2.2.0.tar.gz.sig b/SOURCES/virt-v2v-2.2.0.tar.gz.sig deleted file mode 100644 index 05c5c29..0000000 --- a/SOURCES/virt-v2v-2.2.0.tar.gz.sig +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmO9fDsRHHJpY2hAYW5u -ZXhpYS5vcmcACgkQkXOPc+G3aKAa2g//RQunlKur+nTvnmfpY7gYJJxuJqF0XAq0 -aWoMF3GTGKbmgsKjvRMd3biVeNSeYRz8+cgy+ns7Ci7rlRw2fxG5INtZXX1rjVRN -9j5xQo+fYLHtp48OB2NIZ9qi5dAqSDgdgZ1oHFzzWJJ4dHw9zoMDUW77g8Hi74g4 -jCXoxq61LMAfNpB8hFrN44xgDD3N15A8IWZEy81bBRQBER6yreZ4Ey1WrgCbF/ti -4RjUt98THxbQ1/fP5bDCXpagVSS3h70ZPyYl2gRFVNeEmPekUj4YZP4CvCEb74TF -HFJU6go2YzLah+UeG/z1ln8jl2BZdKd0K58tCHwsYvpOeQ1P0jopR6vtnKEAO9py -6YV2N5JOEA/EQsLDzyn8Hdk70WgceDjCo6Lkpukblk3sL8WfcnoGSysXWrRfQXnC -ktf2yE3vA5IOdd3Bs6yXKSvgp/vmfuLHjAlC7m4Si5MnVuhRWVcrdGmQEKuWb6hO -4GRFNiUWZOSDjxWo93M9U3Ur3iv5chb+i9wYLEceKysk4+IKjbqfutg195m1N3GU -Qn4sF6clXMRM5vzU9BUx4Y6kZLki8dWYgxNirw9/u/APfqHiycT08pCVZ7iCnExP -Q7MpgL6fFNgnwR1hEVHxO6a0kxK0jJh/cWBFHKx6Pkqv4GdXOpUcoKWmugbViLoE -gjRPHbHXzVM= -=bDBY ------END PGP SIGNATURE----- diff --git a/SOURCES/virt-v2v-2.4.0.tar.gz.sig b/SOURCES/virt-v2v-2.4.0.tar.gz.sig new file mode 100644 index 0000000..9411853 --- /dev/null +++ b/SOURCES/virt-v2v-2.4.0.tar.gz.sig @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- + +iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmWW5kYRHHJpY2hAYW5u +ZXhpYS5vcmcACgkQkXOPc+G3aKBddxAAvM08lmWH0IlpLwKX06TwnVERt8fXD++p +bjRrfj2mOoayoN/B1oE61laCdZgCzPtN6MC/aW94LITaGJWHi7YYqdgdRgL1NqeC +n0tu8t14XsCT1xTIOa1ndb018+a5ppIcOnmGAj4naM5uA50rgRwChdSOTP/H10+J +93M2rvvak8aVdeWEhnMJyqWG2mFJ0YselJ+cMu66XFBkK7wg4UwCzzJ4Blqb1Igd +W/wctLDLqPVAxI85P/2p2dt+N4vzOnT/jr+dFxXOJg99E6iwa3qPCdzGHmszjhyC +uNhq/pWMt5tSk34IwYduyk1b9mlx9dCQsyREwrVomsdZD+XrUZHhrGrlcVJDfT07 +2DCkVnGAoH0DRmz3t69KJS9U1JgzkaTDNaezkLlIZ7VZOdaC5nK74efnN0yinBkJ +9GhmR0qbk4/QVKeNWSftu4Rd9OUtRSaEMH0kO/S42vl3fW59u+ZGMEz26Ar4x/q7 +jLx3vKfduJbpvberc3kQ2p9jQbUjlyFOTtnTAf84ckyIkvEMwpEhlyfchctPji/K +IaJ4Yd0KnKiLg/GH9Eon79cadAV2hzvYb2FZYI1RcrbRH+nZvGLgSbvHobqESERT +hBBXrAhaazRdxbOVqwMV9d+lq4llzUJJMOVCsK/PLnigrl5OCLQNQ2IVBbPv8WFD +VMg/9mGiUj0= +=lbFv +-----END PGP SIGNATURE----- diff --git a/SPECS/virt-v2v.spec b/SPECS/virt-v2v.spec index f0b2f02..93fad56 100644 --- a/SPECS/virt-v2v.spec +++ b/SPECS/virt-v2v.spec @@ -11,15 +11,15 @@ %endif # The source directory. -%global source_directory 2.2-stable +%global source_directory 2.4-stable Name: virt-v2v Epoch: 1 -Version: 2.2.0 -Release: 6%{?dist} +Version: 2.4.0 +Release: 2%{?dist} Summary: Convert a virtual machine to run on KVM -License: GPLv2+ +License: GPL-2.0-or-later AND LGPL-2.0-or-later URL: https://github.com/libguestfs/virt-v2v Source0: http://download.libguestfs.org/virt-v2v/%{source_directory}/%{name}-%{version}.tar.gz @@ -33,40 +33,35 @@ Source2: libguestfs.keyring Source3: copy-patches.sh # Patches are maintained in the following repository: -# https://github.com/libguestfs/virt-v2v/commits/rhel-9.2 +# https://github.com/libguestfs/virt-v2v/commits/rhel-9.4 # Patches. -Patch0001: 0001-test-v2v-fedora-btrfs-conversion-spell-out-btrfs-fea.patch -Patch0002: 0002-test-v2v-i-ova-spell-out-ntfs-feature-group-dependen.patch -Patch0003: 0003-Translated-using-Weblate-Finnish.patch -Patch0004: 0004-Translated-using-Weblate-Georgian.patch -Patch0005: 0005-Update-translation-files.patch -Patch0006: 0006-Translated-using-Weblate-Ukrainian.patch -Patch0007: 0007-convert-windows-Remove-extraneous-blank-lines-in-sou.patch -Patch0008: 0008-convert-windows-Document-what-copy_qemu_ga-function-.patch -Patch0009: 0009-convert-windows-Remove-unused-open-Utils.patch -Patch0010: 0010-o-kubevirt-Fix-mistake-in-error-message.patch -Patch0011: 0011-o-kubevirt-Move-cpu-element-under-domain.patch -Patch0012: 0012-o-kubevirt-Error-on-invalid-output-guest-names.patch -Patch0013: 0013-Split-long-lines-in-messages.patch -Patch0014: 0014-o-kubevirt-Implement-oo-compressed-for-qcow2-files.patch -Patch0015: 0015-v2v-Remove-use-of-anchored.patch -Patch0016: 0016-o-kubevirt-Replace-PCRE-anchored-with.patch -Patch0017: 0017-o-libvirt-Add-correct-xmlns-libosinfo-for-Rocky-Linu.patch -Patch0018: 0018-convert-linux-Require-host-cpu-for-all-RHEL-alike-9.patch -Patch0019: 0019-detect_kernels-tighten-try-scope.patch -Patch0020: 0020-detect_kernels-deal-with-RHEL-s-kernel-core-kernel-m.patch -Patch0021: 0021-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch -Patch0022: 0022-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch -Patch0023: 0023-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch -Patch0024: 0024-RHEL-Fixes-for-libguestfs-winsupport.patch -Patch0025: 0025-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch -Patch0026: 0026-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch -Patch0027: 0027-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch -Patch0028: 0028-RHEL-Disable-o-glance.patch -Patch0029: 0029-RHEL-Remove-the-in-place-option.patch -Patch0030: 0030-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch -Patch0031: 0031-RHEL-9-tests-Remove-btrfs-test.patch +Patch0001: 0001-virt-v2v-i-vmx-Remove-scp-T-option.patch +Patch0002: 0002-Translated-using-Weblate-Polish.patch +Patch0003: 0003-Update-translation-files.patch +Patch0004: 0004-virt-v2v-i-vmx-Refactor-ssh-scp-code-into-a-new-modu.patch +Patch0005: 0005-virt-v2v-i-vmx-Simplify-scp-wrapper.patch +Patch0006: 0006-virt-v2v-i-vmx-Add-the-input-password-to-vmx_source.patch +Patch0007: 0007-virt-v2v-i-vmx-Remove-dependency-of-ssh.ml-on-Xml.ur.patch +Patch0008: 0008-input-nbdkit_ssh-Make-retry-filter-optional.patch +Patch0009: 0009-virt-v2v-i-vmx-Replace-external-ssh-scp-with-nbdkit-.patch +Patch0010: 0010-input-nbdkit_ssh-Make-password-parameter-optional.patch +Patch0011: 0011-input-ssh-Rearrange-parameters-specifying-ssh-server.patch +Patch0012: 0012-docs-Remove-paragraph-about-ip-passwords-and-ssh-scp.patch +Patch0013: 0013-input-ssh-Use-nbdinfo-can-connect-instead-of-size.patch +Patch0014: 0014-build-Document-that-nbdinfo-and-nbdcopy-are-required.patch +Patch0015: 0015-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch +Patch0016: 0016-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch +Patch0017: 0017-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch +Patch0018: 0018-RHEL-Fixes-for-libguestfs-winsupport.patch +Patch0019: 0019-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch +Patch0020: 0020-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch +Patch0021: 0021-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch +Patch0022: 0022-RHEL-Disable-o-glance.patch +Patch0023: 0023-RHEL-Remove-the-in-place-option.patch +Patch0024: 0024-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch +Patch0025: 0025-RHEL-9-tests-Remove-btrfs-test.patch +Patch0026: 0026-RHEL-9-Remove-block-driver-option.patch %if !0%{?rhel} # libguestfs hasn't been built on i686 for a while since there is no @@ -94,7 +89,7 @@ BuildRequires: /usr/bin/pod2man BuildRequires: gcc BuildRequires: ocaml >= 4.04 -BuildRequires: libguestfs-devel >= 1:1.44 +BuildRequires: libguestfs-devel >= 1:1.49.8-1 BuildRequires: augeas-devel BuildRequires: bash-completion BuildRequires: file-devel @@ -131,14 +126,15 @@ BuildRequires: nbdkit-python-plugin BuildRequires: nbdkit-cow-filter >= 1.28.3-1.el9 %ifarch x86_64 BuildRequires: glibc-static +BuildRequires: sqlite %endif %if 0%{verify_tarball_signature} BuildRequires: gnupg2 %endif -Requires: libguestfs%{?_isa} >= 1:1.48.4-4.el9 -Requires: guestfs-tools >= 1.42 +Requires: libguestfs%{?_isa} >= 1:1.49.8-1 +Requires: guestfs-tools >= 1.49.7-1 # XFS is the default filesystem in Fedora and RHEL. Requires: libguestfs-xfs @@ -301,15 +297,29 @@ 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. for f in windows.img fedora.img; do make -C test-data/phony-guests $f - if -s test-data/phony-guests/$f; then + if test -s test-data/phony-guests/$f; then ./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 @@ -335,6 +345,7 @@ done %{_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-support.1* %{_datadir}/virt-tools @@ -355,9 +366,42 @@ done %changelog +* Mon Jan 22 2024 Richard W.M. Jones - 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 - 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 - 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 - 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 - 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 - 1:2.2.0-5 - Rebase to virt-v2v 2.2.0 resolves: rhbz#2135762