import virt-v2v-2.3.4-5.el9

c9-beta imports/c9-beta/virt-v2v-2.3.4-5.el9
MSVSphere Packaging Team 1 year ago
parent 39cf1d71d0
commit 515d8d62d0

2
.gitignore vendored

@ -1,2 +1,2 @@
SOURCES/libguestfs.keyring SOURCES/libguestfs.keyring
SOURCES/virt-v2v-2.2.0.tar.gz SOURCES/virt-v2v-2.3.4.tar.gz

@ -1,2 +1,2 @@
1bbc40f501a7fef9eef2a39b701a71aee2fea7c4 SOURCES/libguestfs.keyring 1bbc40f501a7fef9eef2a39b701a71aee2fea7c4 SOURCES/libguestfs.keyring
a7eff6dd19ae599850fe414b5636431d2149e5a5 SOURCES/virt-v2v-2.2.0.tar.gz 6c170400aeacfe53828b4fdbfdcbca2423b9e753 SOURCES/virt-v2v-2.3.4.tar.gz

@ -1,4 +1,4 @@
From 6633c5ca0fe4d37ff4b8ffc62902074fa3b060fb Mon Sep 17 00:00:00 2001 From 3447e87d922d9d0bec765ce9ffeb21d13646bec2 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 28 Sep 2014 19:14:43 +0100 Date: Sun, 28 Sep 2014 19:14:43 +0100
Subject: [PATCH] RHEL: v2v: Select correct qemu binary for -o qemu mode 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(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/output/output_qemu.ml b/output/output_qemu.ml diff --git a/output/output_qemu.ml b/output/output_qemu.ml
index b667e782..3a57a009 100644 index 57b1e58d..bb6b55c8 100644
--- a/output/output_qemu.ml --- a/output/output_qemu.ml
+++ b/output/output_qemu.ml +++ b/output/output_qemu.ml
@@ -142,7 +142,7 @@ module QEMU = struct @@ -142,7 +142,7 @@ module QEMU = struct

@ -1,27 +0,0 @@
From 019809794742e1990af3c14b953f8c307f629b7c Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
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 <lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
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

@ -1,4 +1,4 @@
From cf636bf489fd5a58f451c9da045cbcb856330bd7 Mon Sep 17 00:00:00 2001 From ebaa8a444b44e93e45ccbc2cddadffd19be6f19d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 30 Sep 2014 10:50:27 +0100 Date: Tue, 30 Sep 2014 10:50:27 +0100
Subject: [PATCH] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option Subject: [PATCH] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option
@ -44,7 +44,7 @@ index d2a1c270..0be37f5e 100644
=item B<-o null> =item B<-o null>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index b458607d..6cfe9e44 100644 index 4d2f241a..de27b795 100644
--- a/docs/virt-v2v.pod --- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod
@@ -144,11 +144,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk @@ -144,11 +144,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk
@ -59,7 +59,7 @@ index b458607d..6cfe9e44 100644
=head1 OPTIONS =head1 OPTIONS
=over 4 =over 4
@@ -507,9 +502,6 @@ This is similar to I<-o local>, except that a shell script is written @@ -517,9 +512,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 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>. shell script are written to the directory specified by I<-os>.
@ -69,7 +69,7 @@ index b458607d..6cfe9e44 100644
=item B<-o> B<rhev> =item B<-o> B<rhev>
This is the same as I<-o rhv>. This is the same as I<-o rhv>.
@@ -588,11 +580,6 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID @@ -598,11 +590,6 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID
which is saved on each Cinder volume in the C<virt_v2v_guest_id> which is saved on each Cinder volume in the C<virt_v2v_guest_id>
volume property. volume property.
@ -81,7 +81,7 @@ index b458607d..6cfe9e44 100644
=item B<-oo verify-server-certificate> =item B<-oo verify-server-certificate>
=item B<-oo verify-server-certificate=>C<true|false> =item B<-oo verify-server-certificate=>C<true|false>
@@ -763,10 +750,6 @@ Print information about the source guest and stop. This option is @@ -773,10 +760,6 @@ Print information about the source guest and stop. This option is
useful when you are setting up network and bridge maps. useful when you are setting up network and bridge maps.
See L</Networks and bridges>. See L</Networks and bridges>.
@ -93,7 +93,7 @@ index b458607d..6cfe9e44 100644
=item B<--quiet> =item B<--quiet>
diff --git a/output/output_qemu.ml b/output/output_qemu.ml diff --git a/output/output_qemu.ml b/output/output_qemu.ml
index 3a57a009..4be9b650 100644 index bb6b55c8..ae93fb89 100644
--- a/output/output_qemu.ml --- a/output/output_qemu.ml
+++ b/output/output_qemu.ml +++ b/output/output_qemu.ml
@@ -65,6 +65,9 @@ module QEMU = struct @@ -65,6 +65,9 @@ module QEMU = struct
@ -107,10 +107,10 @@ index 3a57a009..4be9b650 100644
let output_storage = let output_storage =
match options.output_storage with match options.output_storage with
diff --git a/v2v/v2v.ml b/v2v/v2v.ml diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 7a01eab5..dc747804 100644 index 3b2eafbd..696ef75e 100644
--- a/v2v/v2v.ml --- a/v2v/v2v.ml
+++ b/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"; s_"Same as -ip filename";
[ L"print-source" ], Getopt.Set print_source, [ L"print-source" ], Getopt.Set print_source,
s_"Print source and stop"; s_"Print source and stop";

@ -1,78 +0,0 @@
From 224243b8e26aa299bd99dd24662c4df10a3f612c Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
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 <lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
[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

@ -1,4 +1,4 @@
From a4ed97d92b38d2359475187c7ea3a42596cc4616 Mon Sep 17 00:00:00 2001 From 389c370a34f805e744cb8352e3e980fbd0b52044 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 24 Apr 2015 09:45:41 -0400 Date: Fri, 24 Apr 2015 09:45:41 -0400
Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu 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(-) 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/utils.ml b/lib/utils.ml diff --git a/lib/utils.ml b/lib/utils.ml
index 281868b5..e63ec7ce 100644 index 174c01b1..54431307 100644
--- a/lib/utils.ml --- a/lib/utils.ml
+++ b/lib/utils.ml +++ b/lib/utils.ml
@@ -60,13 +60,14 @@ let kvm_arch = function @@ -60,13 +60,14 @@ let kvm_arch = function

@ -1,44 +0,0 @@
From d78c3bdcda04885ee7b826a5ce43d07e778641cd Mon Sep 17 00:00:00 2001
From: Jan Kuparinen <copper_fin@hotmail.com>
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 <copper_fin@hotmail.com>\n"
"Language-Team: Finnish <https://translate.fedoraproject.org/projects/"
"libguestfs/virt-v2v-docs-master/fi/>\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

@ -1,23 +1,26 @@
From ef9a020874b82945e07c61198149e3b566612a85 Mon Sep 17 00:00:00 2001 From c0bb624a151be3291e0c10c1002577615b98e74c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 30 Aug 2015 03:21:57 -0400 Date: Sun, 30 Aug 2015 03:21:57 -0400
Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport. Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport.
In tests we cannot use guestfish for arbitrary Windows edits. In tests we cannot use guestfish for arbitrary Windows edits.
In virt-v2v helpers we must set the program name to virt-v2v. 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/convert.ml | 1 +
convert/windows_virtio.ml | 1 +
test-data/phony-guests/make-windows-img.sh | 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-virtio-win-iso.sh | 8 +++++++-
tests/test-v2v-windows-conversion.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 diff --git a/convert/convert.ml b/convert/convert.ml
index d0d5b773..c3dd4151 100644 index 9c76f76d..caaa707e 100644
--- a/convert/convert.ml --- a/convert/convert.ml
+++ b/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"); message (f_"Opening the source");
let g = open_guestfs ~identifier:"v2v" () in let g = open_guestfs ~identifier:"v2v" () in
@ -25,18 +28,6 @@ index d0d5b773..c3dd4151 100644
g#set_memsize (g#get_memsize () * 2); g#set_memsize (g#get_memsize () * 2);
(* Setting the number of vCPUs allows parallel mkinitrd, but make (* Setting the number of vCPUs allows parallel mkinitrd, but make
* sure this is not too large because each vCPU consumes guest RAM. * 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 diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh
index 30908a91..73cf5144 100755 index 30908a91..73cf5144 100755
--- a/test-data/phony-guests/make-windows-img.sh --- a/test-data/phony-guests/make-windows-img.sh
@ -49,6 +40,23 @@ index 30908a91..73cf5144 100755
sparse windows.img-t 512M sparse windows.img-t 512M
run 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 diff --git a/tests/test-v2v-virtio-win-iso.sh b/tests/test-v2v-virtio-win-iso.sh
index 69f6f414..b9b806fb 100755 index 69f6f414..b9b806fb 100755
--- a/tests/test-v2v-virtio-win-iso.sh --- a/tests/test-v2v-virtio-win-iso.sh

@ -1,49 +0,0 @@
From f395335881974767e4dbdbf73c1abf3bed961f5d Mon Sep 17 00:00:00 2001
From: Temuri Doghonadze <temuri.doghonadze@gmail.com>
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 <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <https://translate.fedoraproject.org/projects/"
"libguestfs/virt-v2v-master/ka/>\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

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

File diff suppressed because it is too large Load Diff

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

@ -1,66 +0,0 @@
From e8c61da73b62b6acf13543e9421db0b0e2a43a1a Mon Sep 17 00:00:00 2001
From: Yuri Chornoivan <yurchor@ukr.net>
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 <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/"
"libguestfs/virt-v2v-master/uk/>\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 ""

@ -1,4 +1,4 @@
From f00e06aecd8e2040de6447e05fb721cb1f14720e Mon Sep 17 00:00:00 2001 From 134fb5cd6925e8af155d1f84db55d3742f2f256f Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com> From: Pino Toscano <ptoscano@redhat.com>
Date: Tue, 26 Mar 2019 09:42:25 +0100 Date: Tue, 26 Mar 2019 09:42:25 +0100
Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests 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(-) 1 file changed, 4 insertions(+), 100 deletions(-)
diff --git a/docs/virt-v2v-support.pod b/docs/virt-v2v-support.pod 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 --- a/docs/virt-v2v-support.pod
+++ b/docs/virt-v2v-support.pod +++ b/docs/virt-v2v-support.pod
@@ -8,106 +8,10 @@ systems and guests in virt-v2v @@ -8,106 +8,10 @@ systems and guests in virt-v2v
@ -84,11 +84,11 @@ index 9815f51f..1ffc0f9d 100644
- -
-=over 4 -=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 -=item Oracle Linux
- -

@ -1,34 +0,0 @@
From fd9694a3a2ea2911335cd3a85558a92b14d946fc Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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].

@ -1,19 +1,19 @@
From 5ef909eb4d65adb02f6f9170755813e3bd0ebb34 Mon Sep 17 00:00:00 2001 From e4ffc4800bd8a4bbec56b374cc6d21dff88f15ae Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 30 Jun 2021 11:15:52 +0100 Date: Wed, 30 Jun 2021 11:15:52 +0100
Subject: [PATCH] RHEL: Disable -o glance Subject: [PATCH] RHEL: Disable -o glance
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1977539 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 ----------- docs/virt-v2v.pod | 20 -----------
output/output_glance.mli | 2 +- output/output_glance.mli | 2 +-
tests/test-v2v-o-glance.sh | 3 ++ tests/test-v2v-o-glance.sh | 3 ++
v2v/v2v.ml | 7 +--- 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 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 --- a/docs/virt-v2v-output-openstack.pod
+++ b/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 @@ -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 =back
=head1 OUTPUT TO OPENSTACK =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<not> supported with OpenStack: I<-oa>, The following options are B<not> supported with OpenStack: I<-oa>,
I<-of>. I<-of>.
@ -60,10 +60,8 @@ index f5a3abad..1ab356e8 100644
- -
-This runs the L<glance(1)> CLI program which must be installed on the -This runs the L<glance(1)> CLI program which must be installed on the
-virt-v2v conversion host. For authentication to work, you will need -virt-v2v conversion host. For authentication to work, you will need
-to set C<OS_*> environment variables. -to set C<OS_*> environment variables. See
- -L</OpenStack: Authentication> above.
-Normally there is a file called C<overcloudrc> or C<keystonerc_admin>
-which you can simply C<source> to set everything up.
- -
-Virt-v2v adds metadata for the guest to Glance, describing such things -Virt-v2v adds metadata for the guest to Glance, describing such things
-as the guest operating system and what drivers it requires. The -as the guest operating system and what drivers it requires. The
@ -100,10 +98,10 @@ index f5a3abad..1ab356e8 100644
=head1 AUTHOR =head1 AUTHOR
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 6cfe9e44..d161b63f 100644 index de27b795..e5400ca7 100644
--- a/docs/virt-v2v.pod --- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod
@@ -421,14 +421,6 @@ See L</Networks and bridges> below. @@ -431,14 +431,6 @@ See L</Networks and bridges> below.
This is the same as I<-o local>. This is the same as I<-o local>.
@ -118,7 +116,7 @@ index 6cfe9e44..d161b63f 100644
=item B<-o> B<kubevirt> =item B<-o> B<kubevirt>
Set the output method to I<kubevirt>. B<Note the way this mode works Set the output method to I<kubevirt>. B<Note the way this mode works
@@ -1172,11 +1164,6 @@ and output methods may use disk space, as outlined in the table below. @@ -1182,11 +1174,6 @@ and output methods may use disk space, as outlined in the table below.
This temporarily places a full copy of the uncompressed source disks This temporarily places a full copy of the uncompressed source disks
in C<$VIRT_V2V_TMPDIR> (or F</var/tmp>). in C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).
@ -130,7 +128,7 @@ index 6cfe9e44..d161b63f 100644
=item I<-o local> =item I<-o local>
=item I<-o qemu> =item I<-o qemu>
@@ -1360,13 +1347,6 @@ instance. @@ -1370,13 +1357,6 @@ instance.
Because of how Cinder volumes are presented as F</dev> block devices, Because of how Cinder volumes are presented as F</dev> block devices,
using I<-o openstack> normally requires that virt-v2v is run as root. using I<-o openstack> normally requires that virt-v2v is run as root.
@ -169,10 +167,10 @@ index c0db9115..074b5e16 100755
set -e set -e
set -x set -x
diff --git a/v2v/v2v.ml b/v2v/v2v.ml diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index dc747804..392c3dad 100644 index 696ef75e..47d2da79 100644
--- a/v2v/v2v.ml --- a/v2v/v2v.ml
+++ b/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 if !output_mode <> `Not_set then
error (f_"%s option used more than once on the command line") "-o"; error (f_"%s option used more than once on the command line") "-o";
match mode with match mode with
@ -180,7 +178,7 @@ index dc747804..392c3dad 100644
| "kubevirt" -> output_mode := `Kubevirt | "kubevirt" -> output_mode := `Kubevirt
| "libvirt" -> output_mode := `Libvirt | "libvirt" -> output_mode := `Libvirt
| "disk" | "local" -> output_mode := `Disk | "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"; s_"Map network in to out";
[ L"no-trim" ], Getopt.String ("-", no_trim_warning), [ L"no-trim" ], Getopt.String ("-", no_trim_warning),
s_"Ignored for backwards compatibility"; s_"Ignored for backwards compatibility";
@ -189,7 +187,7 @@ index dc747804..392c3dad 100644
s_"Set output mode (default: libvirt)"; s_"Set output mode (default: libvirt)";
[ M"oa" ], Getopt.String ("sparse|preallocated", set_output_alloc), [ M"oa" ], Getopt.String ("sparse|preallocated", set_output_alloc),
s_"Set output allocation mode"; 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 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 There is a companion front-end called \"virt-p2v\" which comes as an
ISO or CD image that can be booted on physical machines. 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:libvirtxml\n";
pr "input:ova\n"; pr "input:ova\n";
pr "input:vmx\n"; pr "input:vmx\n";
@ -206,7 +204,7 @@ index dc747804..392c3dad 100644
pr "output:kubevirt\n"; pr "output:kubevirt\n";
pr "output:libvirt\n"; pr "output:libvirt\n";
pr "output:local\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) | `Disk -> (module Output_disk.Disk)
| `Null -> (module Output_null.Null) | `Null -> (module Output_null.Null)
| `QEmu -> (module Output_qemu.QEMU) | `QEmu -> (module Output_qemu.QEMU)

@ -1,30 +0,0 @@
From 9a5c900fdb532d553a78339a6887417dd6de70e5 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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). *)
(**/**)

@ -1,4 +1,4 @@
From ade0fd71c59b362ae7fd6cc07dd91eda9341eafe Mon Sep 17 00:00:00 2001 From 8eb1f90c3e894da7f528dbc1c54960ebcf0f759b Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 2 Dec 2021 11:56:05 +0000 Date: Thu, 2 Dec 2021 11:56:05 +0000
Subject: [PATCH] RHEL: Remove the --in-place option Subject: [PATCH] RHEL: Remove the --in-place option
@ -12,7 +12,7 @@ wish to support in RHEL.
3 files changed, 17 deletions(-) 3 files changed, 17 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index d161b63f..0394b421 100644 index e5400ca7..fc7e0d82 100644
--- a/docs/virt-v2v.pod --- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod +++ b/docs/virt-v2v.pod
@@ -24,9 +24,6 @@ virtualize those machines (physical to virtual, or p2v). @@ -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 =head2 Other virt-v2v topics
L<virt-v2v-support(1)> — Supported hypervisors, virtualization L<virt-v2v-support(1)> — Supported hypervisors, virtualization
@@ -1612,7 +1605,6 @@ L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-rhev/#c @@ -1622,7 +1615,6 @@ L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-rhev/#c
L<virt-p2v(1)>, L<virt-p2v(1)>,
L<virt-v2v-inspector(1)>, L<virt-v2v-inspector(1)>,
@ -45,7 +45,7 @@ index d161b63f..0394b421 100644
L<virt-df(1)>, L<virt-df(1)>,
L<virt-filesystems(1)>, L<virt-filesystems(1)>,
diff --git a/tests/Makefile.am b/tests/Makefile.am diff --git a/tests/Makefile.am b/tests/Makefile.am
index a4c87398..998b871d 100644 index 5c523204..5190d055 100644
--- a/tests/Makefile.am --- a/tests/Makefile.am
+++ b/tests/Makefile.am +++ b/tests/Makefile.am
@@ -77,7 +77,6 @@ TESTS = \ @@ -77,7 +77,6 @@ TESTS = \
@ -53,14 +53,14 @@ index a4c87398..998b871d 100644
test-v2v-i-disk.sh \ test-v2v-i-disk.sh \
test-v2v-i-ova.sh \ test-v2v-i-ova.sh \
- test-v2v-in-place.sh \ - test-v2v-in-place.sh \
test-v2v-block-driver.sh \
test-v2v-inspector.sh \ test-v2v-inspector.sh \
test-v2v-mac.sh \ test-v2v-mac.sh \
test-v2v-machine-readable.sh \
diff --git a/v2v/v2v.ml b/v2v/v2v.ml diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 392c3dad..18a694ee 100644 index 47d2da79..19f08aae 100644
--- a/v2v/v2v.ml --- a/v2v/v2v.ml
+++ b/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") warning (f_"the --vmtype option has been removed and now does nothing")
in in
@ -73,7 +73,7 @@ index 392c3dad..18a694ee 100644
let argspec = [ let argspec = [
[ L"bandwidth" ], Getopt.String ("bps", set_string_option_once "--bandwidth" bandwidth), [ L"bandwidth" ], Getopt.String ("bps", set_string_option_once "--bandwidth" bandwidth),
s_"Set bandwidth to bits per sec"; 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"; s_"Use password from file to connect to input hypervisor";
[ M"it" ], Getopt.String ("transport", set_string_option_once "-it" input_transport), [ M"it" ], Getopt.String ("transport", set_string_option_once "-it" input_transport),
s_"Input transport"; s_"Input transport";

@ -1,25 +0,0 @@
From 48f15935cff53836eae4c1c9afb0be8ab4f13bea Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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

@ -1,4 +1,4 @@
From d6fc11c3f99f2f25b06d36d582d63702be802132 Mon Sep 17 00:00:00 2001 From dbf8c50d6d0e157c13e505a22f6f397cb991139c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Jul 2022 11:56:54 +0100 Date: Tue, 5 Jul 2022 11:56:54 +0100
Subject: [PATCH] RHEL 9: -oo compressed: Remove nbdcopy version check and test 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 let g = open_guestfs () in
diff --git a/tests/Makefile.am b/tests/Makefile.am diff --git a/tests/Makefile.am b/tests/Makefile.am
index 998b871d..8cf17f94 100644 index 5190d055..5169e2a6 100644
--- a/tests/Makefile.am --- a/tests/Makefile.am
+++ b/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-networks-and-bridges.sh \
test-v2v-o-glance.sh \ test-v2v-o-glance.sh \
test-v2v-o-libvirt.sh \ test-v2v-o-libvirt.sh \

@ -1,28 +0,0 @@
From 4623b2aab891fdbeda0486ad00f1fa2a7f5533fe Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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 =

@ -1,4 +1,4 @@
From 86517b17be985cb234846c75680c144bf9ea2dd8 Mon Sep 17 00:00:00 2001 From 81b28218e676cdc57bd6f8427cfd5faf85162d4a Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com> From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Jul 2022 11:58:09 +0100 Date: Tue, 5 Jul 2022 11:58:09 +0100
Subject: [PATCH] RHEL 9: tests: Remove btrfs test 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(-) 1 file changed, 1 deletion(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8cf17f94..8b2a8685 100644 index 5169e2a6..a1c61f8f 100644
--- a/tests/Makefile.am --- a/tests/Makefile.am
+++ b/tests/Makefile.am +++ b/tests/Makefile.am
@@ -97,7 +97,6 @@ TESTS = \ @@ -98,7 +98,6 @@ TESTS = \
test-v2v-sound.sh \ test-v2v-sound.sh \
test-v2v-virtio-win-iso.sh \ test-v2v-virtio-win-iso.sh \
test-v2v-fedora-conversion.sh \ test-v2v-fedora-conversion.sh \

@ -1,46 +0,0 @@
From 6b7ef3efe748a72edad0faa508e91b340038a586 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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);

@ -0,0 +1,157 @@
From 9c18f8772f7c8801ef47126f55b0313dc2188b03 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 28 Apr 2023 12:28:19 +0100
Subject: [PATCH] RHEL 9: Remove --block-driver option
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<virtio-blk>
-
-=item B<--block-driver> B<virtio-scsi>
-
-When choosing a block driver for Windows guests, prefer C<virtio-blk> or
-C<virtio-scsi>. The default is C<virtio-blk>.
-
-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 fc7e0d82..0394b421 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -195,16 +195,6 @@ The options are silently ignored for other input methods.
See I<--network> below.
-=item B<--block-driver> B<virtio-blk>
-
-=item B<--block-driver> B<virtio-scsi>
-
-When choosing a block driver for Windows guests, prefer C<virtio-blk> or
-C<virtio-scsi>. The default is C<virtio-blk>.
-
-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;

@ -1,51 +0,0 @@
From 8009825c396358137576af522acc0b6b20243bac Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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 =

File diff suppressed because it is too large Load Diff

@ -0,0 +1,60 @@
From 6dea82d823c344af0277bb35de789828cfd3e413 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sat, 22 Apr 2023 09:06:01 +0100
Subject: [PATCH] Update common submodule
Richard W.M. Jones (1):
mlcustomize/SELinux_relabel.ml: Use Array.mem
Roman Kagan (1):
mlcustomize: skip SELinux relabeling if it's disabled
(cherry picked from commit e83de8abe6c5388585885cef28d7a198b7bfc90c)
---
common | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Submodule common 70c10a07..38e6988c:
diff --git a/common/mlcustomize/SELinux_relabel.ml b/common/mlcustomize/SELinux_relabel.ml
index 5ecf7bd7..2f3a09bf 100644
--- a/common/mlcustomize/SELinux_relabel.ml
+++ b/common/mlcustomize/SELinux_relabel.ml
@@ -24,10 +24,6 @@ open Printf
module G = Guestfs
-(* Simple reimplementation of Array.mem, available only with OCaml >= 4.03. *)
-let array_find a l =
- List.mem a (Array.to_list l)
-
let rec relabel (g : G.guestfs) =
(* Is the guest using SELinux? (Otherwise this is a no-op). *)
if is_selinux_guest g then (
@@ -59,14 +55,24 @@ and use_setfiles g =
g#aug_load ();
debug_augeas_errors g;
+ let config_path = "/files/etc/selinux/config" in
+ let config_keys = g#aug_ls config_path in
+ (* SELinux may be disabled via a setting in config file *)
+ let selinux_disabled =
+ let selinuxmode_path = config_path ^ "/SELINUX" in
+ if Array.mem selinuxmode_path config_keys then
+ g#aug_get selinuxmode_path = "disabled"
+ else
+ false in
+ if selinux_disabled then
+ failwith "selinux disabled";
+
(* Get the SELinux policy name, eg. "targeted", "minimum".
* Use "targeted" if not specified, just like libselinux does.
*)
let policy =
- let config_path = "/files/etc/selinux/config" in
let selinuxtype_path = config_path ^ "/SELINUXTYPE" in
- let keys = g#aug_ls config_path in
- if array_find selinuxtype_path keys then
+ if Array.mem selinuxtype_path config_keys then
g#aug_get selinuxtype_path
else
"targeted" in

@ -1,83 +0,0 @@
From 64a86bb9ef0298496a992a3a76d190b3895ffeee Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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)

@ -0,0 +1,152 @@
From 1d69132b7b7209dbf231a4668b3a6531a6f9cdf3 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Fri, 19 May 2023 11:34:18 +0200
Subject: [PATCH] update common submodule
Laszlo Ersek (2):
options/keys: key_store_import_key(): un-constify "key" parameter
options/keys: introduce unescape_device_mapper_lvm()
https://bugzilla.redhat.com/show_bug.cgi?id=2168506
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
(cherry picked from commit b0dbe7c7728579d6c2128c733491755eee1a91b5)
---
common | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Submodule common 38e6988c..b636c3f2:
diff --git a/common/options/options.h b/common/options/options.h
index 94573ee0..94e8b9ee 100644
--- a/common/options/options.h
+++ b/common/options/options.h
@@ -169,7 +169,8 @@ extern struct matching_key *get_keys (struct key_store *ks, const char *device,
const char *uuid, size_t *nr_matches);
extern void free_keys (struct matching_key *keys, size_t nr_matches);
extern struct key_store *key_store_add_from_selector (struct key_store *ks, const char *selector);
-extern struct key_store *key_store_import_key (struct key_store *ks, const struct key_store_key *key);
+extern struct key_store *key_store_import_key (struct key_store *ks,
+ struct key_store_key *key);
extern bool key_store_requires_network (const struct key_store *ks);
extern void free_key_store (struct key_store *ks);
diff --git a/common/options/keys.c b/common/options/keys.c
index 48f1bc7c..52b27369 100644
--- a/common/options/keys.c
+++ b/common/options/keys.c
@@ -260,8 +260,107 @@ key_store_add_from_selector (struct key_store *ks, const char *selector)
return key_store_import_key (ks, &key);
}
+/* Turn /dev/mapper/VG-LV into /dev/VG/LV, in-place. */
+static void
+unescape_device_mapper_lvm (char *id)
+{
+ static const char dev[] = "/dev/", dev_mapper[] = "/dev/mapper/";
+ const char *input_start;
+ char *output;
+ enum { M_SCAN, M_FILL, M_DONE } mode;
+
+ if (!STRPREFIX (id, dev_mapper))
+ return;
+
+ /* Start parsing "VG-LV" from "id" after "/dev/mapper/". */
+ input_start = id + (sizeof dev_mapper - 1);
+
+ /* Start writing the unescaped "VG/LV" output after "/dev/". */
+ output = id + (sizeof dev - 1);
+
+ for (mode = M_SCAN; mode < M_DONE; ++mode) {
+ char c;
+ const char *input = input_start;
+ const char *hyphen_buffered = NULL;
+ bool single_hyphen_seen = false;
+
+ do {
+ c = *input;
+
+ switch (c) {
+ case '-':
+ if (hyphen_buffered == NULL)
+ /* This hyphen may start an escaped hyphen, or it could be the
+ * separator in VG-LV.
+ */
+ hyphen_buffered = input;
+ else {
+ /* This hyphen completes an escaped hyphen; unescape it. */
+ if (mode == M_FILL)
+ *output++ = '-';
+ hyphen_buffered = NULL;
+ }
+ break;
+
+ case '/':
+ /* Slash characters are forbidden in VG-LV anywhere. If there's any,
+ * we'll find it in the first (i.e., scanning) phase, before we output
+ * anything back to "id".
+ */
+ assert (mode == M_SCAN);
+ return;
+
+ default:
+ /* Encountered a non-slash, non-hyphen character -- which also may be
+ * the terminating NUL.
+ */
+ if (hyphen_buffered != NULL) {
+ /* The non-hyphen character comes after a buffered hyphen, so the
+ * buffered hyphen is supposed to be the single hyphen that separates
+ * VG from LV in VG-LV. There are three requirements for this
+ * separator: (a) it must be unique (we must not have seen another
+ * such separator earlier), (b) it must not be at the start of VG-LV
+ * (because VG would be empty that way), (c) it must not be at the end
+ * of VG-LV (because LV would be empty that way). Should any of these
+ * be violated, we'll catch that during the first (i.e., scanning)
+ * phase, before modifying "id".
+ */
+ if (single_hyphen_seen || hyphen_buffered == input_start ||
+ c == '\0') {
+ assert (mode == M_SCAN);
+ return;
+ }
+
+ /* Translate the separator hyphen to a slash character. */
+ if (mode == M_FILL)
+ *output++ = '/';
+ hyphen_buffered = NULL;
+ single_hyphen_seen = true;
+ }
+
+ /* Output the non-hyphen character (including the terminating NUL)
+ * regardless of whether there was a buffered hyphen separator (which,
+ * by now, we'll have attempted to translate and flush).
+ */
+ if (mode == M_FILL)
+ *output++ = c;
+ }
+
+ ++input;
+ } while (c != '\0');
+
+ /* We must have seen the VG-LV separator. If that's not the case, we'll
+ * catch it before modifying "id".
+ */
+ if (!single_hyphen_seen) {
+ assert (mode == M_SCAN);
+ return;
+ }
+ }
+}
+
struct key_store *
-key_store_import_key (struct key_store *ks, const struct key_store_key *key)
+key_store_import_key (struct key_store *ks, struct key_store_key *key)
{
struct key_store_key *new_keys;
@@ -278,6 +377,7 @@ key_store_import_key (struct key_store *ks, const struct key_store_key *key)
error (EXIT_FAILURE, errno, "realloc");
ks->keys = new_keys;
+ unescape_device_mapper_lvm (key->id);
ks->keys[ks->nr_keys] = *key;
++ks->nr_keys;

@ -0,0 +1,81 @@
From 2558084d081c3dd9b0d681f3cf6789b48485cb62 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Mon, 15 May 2023 19:55:28 +0200
Subject: [PATCH] LUKS-on-LVM conversion test: rename VGs and LVs
In preparation for a subsequent patch, rename "VG" to "Volume-Group", and
"LV<n>" to "Logical-Volume-<n>", in the LUKS-on-LVM conversion test.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2168506
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20230515175529.290724-2-lersek@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit 0ecbe09c09cace1fe0d03cad3ac53000bfeb3cb6)
---
test-data/phony-guests/make-fedora-img.pl | 30 +++++++++++--------
.../test-v2v-fedora-luks-on-lvm-conversion.sh | 8 ++---
2 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/test-data/phony-guests/make-fedora-img.pl b/test-data/phony-guests/make-fedora-img.pl
index c30c0b53..830accfc 100755
--- a/test-data/phony-guests/make-fedora-img.pl
+++ b/test-data/phony-guests/make-fedora-img.pl
@@ -224,23 +224,27 @@ EOF
# Create the Volume Group on /dev/sda2.
$g->pvcreate ('/dev/sda2');
- $g->vgcreate ('VG', ['/dev/sda2']);
- $g->lvcreate ('Root', 'VG', 256);
- $g->lvcreate ('LV1', 'VG', 32);
- $g->lvcreate ('LV2', 'VG', 32);
- $g->lvcreate ('LV3', 'VG', 64);
+ $g->vgcreate ('Volume-Group', ['/dev/sda2']);
+ $g->lvcreate ('Root', 'Volume-Group', 256);
+ $g->lvcreate ('Logical-Volume-1', 'Volume-Group', 32);
+ $g->lvcreate ('Logical-Volume-2', 'Volume-Group', 32);
+ $g->lvcreate ('Logical-Volume-3', 'Volume-Group', 64);
# Format each Logical Group as a LUKS device, with a different password.
- $g->luks_format ('/dev/VG/Root', 'FEDORA-Root', 0);
- $g->luks_format ('/dev/VG/LV1', 'FEDORA-LV1', 0);
- $g->luks_format ('/dev/VG/LV2', 'FEDORA-LV2', 0);
- $g->luks_format ('/dev/VG/LV3', 'FEDORA-LV3', 0);
+ $g->luks_format ('/dev/Volume-Group/Root', 'FEDORA-Root', 0);
+ $g->luks_format ('/dev/Volume-Group/Logical-Volume-1', 'FEDORA-LV1', 0);
+ $g->luks_format ('/dev/Volume-Group/Logical-Volume-2', 'FEDORA-LV2', 0);
+ $g->luks_format ('/dev/Volume-Group/Logical-Volume-3', 'FEDORA-LV3', 0);
# Open the LUKS devices. This creates nodes like /dev/mapper/*-luks.
- $g->cryptsetup_open ('/dev/VG/Root', 'FEDORA-Root', 'Root-luks');
- $g->cryptsetup_open ('/dev/VG/LV1', 'FEDORA-LV1', 'LV1-luks');
- $g->cryptsetup_open ('/dev/VG/LV2', 'FEDORA-LV2', 'LV2-luks');
- $g->cryptsetup_open ('/dev/VG/LV3', 'FEDORA-LV3', 'LV3-luks');
+ $g->cryptsetup_open ('/dev/Volume-Group/Root',
+ 'FEDORA-Root', 'Root-luks');
+ $g->cryptsetup_open ('/dev/Volume-Group/Logical-Volume-1',
+ 'FEDORA-LV1', 'LV1-luks');
+ $g->cryptsetup_open ('/dev/Volume-Group/Logical-Volume-2',
+ 'FEDORA-LV2', 'LV2-luks');
+ $g->cryptsetup_open ('/dev/Volume-Group/Logical-Volume-3',
+ 'FEDORA-LV3', 'LV3-luks');
# Phony root filesystem.
$g->mkfs ('ext2', '/dev/mapper/Root-luks', blocksize => 4096, label => 'ROOT');
diff --git a/tests/test-v2v-fedora-luks-on-lvm-conversion.sh b/tests/test-v2v-fedora-luks-on-lvm-conversion.sh
index 1a4068cf..7ad17e0d 100755
--- a/tests/test-v2v-fedora-luks-on-lvm-conversion.sh
+++ b/tests/test-v2v-fedora-luks-on-lvm-conversion.sh
@@ -28,9 +28,9 @@ skip_if_skipped
f=../test-data/phony-guests/fedora-luks-on-lvm.img
requires test -f $f
-keys=(--key /dev/VG/Root:key:FEDORA-Root
- --key /dev/VG/LV1:key:FEDORA-LV1
- --key /dev/VG/LV2:key:FEDORA-LV2
- --key /dev/VG/LV3:key:FEDORA-LV3)
+keys=(--key /dev/Volume-Group/Root:key:FEDORA-Root
+ --key /dev/Volume-Group/Logical-Volume-1:key:FEDORA-LV1
+ --key /dev/Volume-Group/Logical-Volume-2:key:FEDORA-LV2
+ --key /dev/Volume-Group/Logical-Volume-3:key:FEDORA-LV3)
$VG virt-v2v --debug-gc -i disk $f -o null "${keys[@]}"

@ -1,62 +0,0 @@
From 8802e8b4135c913f206508c8f7650a9f99ee6667 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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 =

@ -0,0 +1,34 @@
From c8902c551014bc0163122d9fd2005d97d3cb38a5 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Mon, 15 May 2023 19:55:29 +0200
Subject: [PATCH] LUKS-on-LVM conversion test: test /dev/mapper/VG-LV
translation
In the LUKS-on-LVM conversion test, repeat the null conversion with such
"--key" options that exercise the recent "/dev/mapper/VG-LV" ->
"/dev/VG/LV" translation (unescaping) from libguestfs-common.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2168506
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20230515175529.290724-3-lersek@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit 3060af01e87fbffe1cb413938c3c5431f2242bd4)
---
tests/test-v2v-fedora-luks-on-lvm-conversion.sh | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/tests/test-v2v-fedora-luks-on-lvm-conversion.sh b/tests/test-v2v-fedora-luks-on-lvm-conversion.sh
index 7ad17e0d..605b19fb 100755
--- a/tests/test-v2v-fedora-luks-on-lvm-conversion.sh
+++ b/tests/test-v2v-fedora-luks-on-lvm-conversion.sh
@@ -34,3 +34,10 @@ keys=(--key /dev/Volume-Group/Root:key:FEDORA-Root
--key /dev/Volume-Group/Logical-Volume-3:key:FEDORA-LV3)
$VG virt-v2v --debug-gc -i disk $f -o null "${keys[@]}"
+
+keys=(--key /dev/mapper/Volume--Group-Root:key:FEDORA-Root
+ --key /dev/mapper/Volume--Group-Logical--Volume--1:key:FEDORA-LV1
+ --key /dev/mapper/Volume--Group-Logical--Volume--2:key:FEDORA-LV2
+ --key /dev/mapper/Volume--Group-Logical--Volume--3:key:FEDORA-LV3)
+
+$VG virt-v2v --debug-gc -i disk $f -o null "${keys[@]}"

@ -1,34 +0,0 @@
From 628ee708464ee3d266609167c48e92f883849e4d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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

@ -1,48 +0,0 @@
From a9630d3981cbf7f6083e82f4e22cff981d11a8b3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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 ->

@ -0,0 +1,63 @@
From 10192f8ee3a7900e76d5c9a0fb330eb5ff1fe22c Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Mon, 19 Jun 2023 18:27:29 +0200
Subject: [PATCH] test-data/phony-guests: fix prerequisite list of
"fedora-luks-on-lvm.img"
In the virt-v2v repo, commit 1e75569aa074 ("test-data/phony-guests: Allow
virt-v2v to work against phony Fedora") is an ancestor of commit
e4efe4b7d240 ("tests: add LUKS-on-LVM test"). The latter created a state
where "fedora-static-bin" and LUKS on LVM testing would coexist (i.e.,
where "fedora-static-bin" would be uploaded to the LUKS-on-LVM disk image
as well), but the commit didn't spell out the dependency in
"test-data/phony-guests/Makefile.am".
Do that now.
The problem can be triggered with:
> autoreconf -i
> ./configure
> make
> make -C test-data/phony-guests fedora-luks-on-lvm.img
where the last command fails with
> make: Entering directory '.../test-data/phony-guests'
> SRCDIR=. LAYOUT=luks-on-lvm ../../run --test ./make-fedora-img.pl
> open: fedora-static-bin: No such file or directory at
> .../test-data/phony-guests/make-fedora-img.pl line 373.
(In the guestfs-tools repo, the relative order (the descendancy) between
both commits is the opposite. There, commit 27da4b0c4991 ("inspector: add
LUKS-on-LVM test") came first, and commit eb0ff1859eb6
("test-data/phony-guests: Allow virt-v2v to work against phony Fedora"),
came second. The latter commit, in fact being a port of virt-v2v commit
1e75569aa074, brought together "fedora-static-bin" with "LUKS on LVM"
testing, and it correctly added "fedora-static-bin" as a pre-requisite
for building "fedora-luks-on-lvm.img".)
Fixes: e4efe4b7d240b66b1d53fbe5a127f4f5966f6903
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2168506
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20230619162729.153334-1-lersek@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit 13a6f4b9686e3fc385663bffc31c08d2c2bb7959)
---
test-data/phony-guests/Makefile.am | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test-data/phony-guests/Makefile.am b/test-data/phony-guests/Makefile.am
index 29dbd4d0..10c0241b 100644
--- a/test-data/phony-guests/Makefile.am
+++ b/test-data/phony-guests/Makefile.am
@@ -103,7 +103,8 @@ fedora-btrfs.img: make-fedora-img.pl \
# Make a (dummy) Fedora image with LUKS-on-LVM.
fedora-luks-on-lvm.img: make-fedora-img.pl \
fedora-journal.tar.xz \
- fedora.db
+ fedora.db \
+ fedora-static-bin
SRCDIR=$(srcdir) LAYOUT=luks-on-lvm $(top_builddir)/run --test ./$<
# Make a (dummy) Fedora image with LVM-on-LUKS.

@ -1,42 +0,0 @@
From 227313ca73d24eaaa0b82aca94de2278bca0f95b Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
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

@ -0,0 +1,30 @@
From 7a370cc7fcf4ba664eef73d4bac03dfc4d7041b3 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 29 Jun 2023 14:34:41 +0200
Subject: [PATCH] lib/utils: fix typo
Fix a small comment typo from commit 4e7f20684373 ("lib: Improve security
of in/out sockets when running virt-v2v as root", 2022-03-23).
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2182024
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20230629123443.188350-2-lersek@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit dab9629c01915efc3678885e8bb0ccc5da1802a3)
---
lib/utils.mli | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/utils.mli b/lib/utils.mli
index 5687bf75..cf88a467 100644
--- a/lib/utils.mli
+++ b/lib/utils.mli
@@ -62,7 +62,7 @@ val backend_is_libvirt : unit -> bool
(** Return true iff the current backend is libvirt. *)
val chown_for_libvirt_rhbz_1045069 : string -> unit
-(** If running and root, and if the backend is libvirt, libvirt
+(** If running as root, and if the backend is libvirt, libvirt
will run qemu as a non-root user. This prevents access
to root-owned files and directories. To fix this, provide
a function to chown things we might need to qemu:root so

@ -0,0 +1,96 @@
From 522a927257cfa55ac87775165be23779e00076bb Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 29 Jun 2023 14:34:42 +0200
Subject: [PATCH] lib/utils: make "chown_for_libvirt_rhbz_1045069" fail hard
Currently "chown_for_libvirt_rhbz_1045069" is best effort; if it fails, we
suppress the exception (we log it in verbose mode only, even).
That's not proved helpful: it almost certainly leads to later errors, but
those errors are less clear than the original (suppressed) exception.
Namely, the user sees something like
> Failed to connect to '/tmp/v2v.sKlulY/in0': Permission denied
rather than
> Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro':
> Connection refused
So just allow the exception to propagate outwards.
And then, now that "chown_for_libvirt_rhbz_1045069" will be able to fail,
hoist the call to "On_exit.rm_rf" before the call to
"chown_for_libvirt_rhbz_1045069", after creating the v2v temporary
directory. In the current order, if "chown_for_libvirt_rhbz_1045069" threw
an exception, then we'd leak the temp dir in the filesystem.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2182024
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20230629123443.188350-3-lersek@redhat.com>
[lersek@redhat.com: reinstate parens under "then" [Rich]]
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit 8bcf383510a3d9deaa9b4c069a45c1604c9d5f53)
---
lib/utils.ml | 23 +++++++++--------------
lib/utils.mli | 5 +----
2 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/lib/utils.ml b/lib/utils.ml
index 54431307..7b3aa2e2 100644
--- a/lib/utils.ml
+++ b/lib/utils.ml
@@ -151,19 +151,14 @@ let backend_is_libvirt () =
let rec chown_for_libvirt_rhbz_1045069 file =
let running_as_root = Unix.geteuid () = 0 in
if running_as_root && backend_is_libvirt () then (
- try
- let user = Option.value ~default:"qemu" (libvirt_qemu_user ()) in
- let uid =
- if String.is_prefix user "+" then
- int_of_string (String.sub user 1 (String.length user - 1))
- else
- (Unix.getpwnam user).pw_uid in
- debug "setting owner of %s to %d:root" file uid;
- Unix.chown file uid 0
- with
- | exn -> (* Print exception, but continue. *)
- debug "could not set owner of %s: %s"
- file (Printexc.to_string exn)
+ let user = Option.value ~default:"qemu" (libvirt_qemu_user ()) in
+ let uid =
+ if String.is_prefix user "+" then
+ int_of_string (String.sub user 1 (String.length user - 1))
+ else
+ (Unix.getpwnam user).pw_uid in
+ debug "setting owner of %s to %d:root" file uid;
+ Unix.chown file uid 0
)
(* Get the local user that libvirt uses to run qemu when we are
@@ -206,8 +201,8 @@ let error_if_no_ssh_agent () =
(* Create the directory containing inX and outX sockets. *)
let create_v2v_directory () =
let d = Mkdtemp.temp_dir "v2v." in
- chown_for_libvirt_rhbz_1045069 d;
On_exit.rm_rf d;
+ chown_for_libvirt_rhbz_1045069 d;
d
(* Wait for a file to appear until a timeout. *)
diff --git a/lib/utils.mli b/lib/utils.mli
index cf88a467..391a2a35 100644
--- a/lib/utils.mli
+++ b/lib/utils.mli
@@ -67,10 +67,7 @@ val chown_for_libvirt_rhbz_1045069 : string -> unit
to root-owned files and directories. To fix this, provide
a function to chown things we might need to qemu:root so
qemu can access them. Note that root normally ignores
- permissions so can still access the resource.
-
- This is best-effort. If something fails then we carry
- on and hope for the best. *)
+ permissions so can still access the resource. *)
val error_if_no_ssh_agent : unit -> unit

@ -0,0 +1,79 @@
From f2e233b9e073327b1881ef17695380bc02a51f68 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 29 Jun 2023 14:34:43 +0200
Subject: [PATCH] docs/virt-v2v: document libvirt system instance startup
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
It has frequently tripped us up that on RHEL / Fedora, installing the
right set of libvirt RPMs (such as the one pulled in by
"libvirt-daemon-kvm") does not result in an immediately running libvirt
system instance. Document the need, and the simplest method, for starting
libvirt up manually.
Thanks: Daniel Berrangé
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2182024
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20230629123443.188350-4-lersek@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit dcfea1b9b5d0f237f49c9eb870af93527093b40b)
---
docs/virt-v2v.pod | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 0394b421..058eb800 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -237,6 +237,8 @@ In this mode you have to specify a libvirt guest name or UUID on the
command line. You may also specify a libvirt connection URI (see
I<-ic>).
+See L</Starting the libvirt system instance> below.
+
=item B<-i> B<libvirtxml>
Set the input method to I<libvirtxml>.
@@ -440,7 +442,8 @@ Set the output method to I<libvirt>. This is the default.
In this mode, the converted guest is created as a libvirt guest. You
may also specify a libvirt connection URI (see I<-oc>).
-See L<virt-v2v-output-local(1)>.
+See L</Starting the libvirt system instance> below, and
+L<virt-v2v-output-local(1)>.
=item B<-o> B<local>
@@ -1335,6 +1338,8 @@ see L<http://libvirt.org/auth.html>. Alternatively, use
I<-oc qemu:///session>, which will write to your per-user libvirt
instance.
+See also L</Starting the libvirt system instance>.
+
=item Writing to Openstack
Because of how Cinder volumes are presented as F</dev> block devices,
@@ -1476,6 +1481,22 @@ option at all. The option was added when virt-v2v was rewritten in 2014.
It is possible to specify a format string for controlling the output;
see L<guestfs(3)/ADVANCED MACHINE READABLE OUTPUT>.
+=head2 Starting the libvirt system instance
+
+ Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory
+ Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused
+
+If you have just installed libvirt and virt-v2v, then you may see the
+errors above. This is caused by libvirt daemons that provide various
+services not running straight after installation. (This may depend on
+your distribution and vendor presets).
+
+To fix this on systemd-based distributions, do:
+
+ systemctl isolate multi-user.target
+
+See also L<https://bugzilla.redhat.com/2182024>.
+
=head1 FILES
=over 4

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

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

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmQ/zVsRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKDvNw//T5RStZ4lypgFgeCqM8HUce8AvEBmp2Bu
eCFMsSHjyWvA5S9mw+D6EOhDIZiIyGoESbYzpXZxrXE8YYWKW51rlOaGcVxmU5ld
mz3bz2iGRGpFsKzF1v0WDaLzhg8KX6Fw7hFlnDjTLjYqnwSgySf/aXVrPEZPwmwj
iGqpCNokG5HmJNQ36x2JMmQxa135nbYXh/nvPTXU2gzx7i5By3D9ir2k6B/iLDPf
NbQ7PDO9mSBKljeRvhrmM2zxXiAhb3WG9XWM/I4aHASh76BhR7lCg4GS94NbTNPj
KAWAIGZN0TFRLOHsFwvOz9pibJQeDdjimakwDzSv9+gS+TlwU1isahpW8Ic/tIlC
2BEucjM7MVuyLLqoGq5tKGbO/OZ7Rheg/wR0j2y+1afvCRgRupyAjtwlYjFpB/sp
1tNmYAW9zOtJtp3MLfMCO820ZsBifprTk9dZqDCeH3HW9aJ8e1pJcpYF5G3gpVD/
m32J9YFudmAV0Z3ePUnH/C5ZAzvE1u55SexnfZEqdyKZ+KOujZBrg4b/nID1xmo1
jBZbYprNJTRluJCmIvY5/79Oob2GqAqOgjdUrQlEzPVRf6Kd5lAGIqkKr+5RlQvg
9OmIvQu1wgiqpmxEuev/RDb8b8M632YAv5+6TACxpqhfZxkmSZ04XFKCZZw1/pDd
NXR/cUUWEBI=
=XPmg
-----END PGP SIGNATURE-----

@ -11,11 +11,11 @@
%endif %endif
# The source directory. # The source directory.
%global source_directory 2.2-stable %global source_directory 2.3-development
Name: virt-v2v Name: virt-v2v
Epoch: 1 Epoch: 1
Version: 2.2.0 Version: 2.3.4
Release: 5%{?dist} Release: 5%{?dist}
Summary: Convert a virtual machine to run on KVM Summary: Convert a virtual machine to run on KVM
@ -33,38 +33,29 @@ Source2: libguestfs.keyring
Source3: copy-patches.sh Source3: copy-patches.sh
# Patches are maintained in the following repository: # 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.3
# Patches. # Patches.
Patch0001: 0001-test-v2v-fedora-btrfs-conversion-spell-out-btrfs-fea.patch Patch0001: 0001-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0002: 0002-test-v2v-i-ova-spell-out-ntfs-feature-group-dependen.patch Patch0002: 0002-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0003: 0003-Translated-using-Weblate-Finnish.patch Patch0003: 0003-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0004: 0004-Translated-using-Weblate-Georgian.patch Patch0004: 0004-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0005: 0005-Update-translation-files.patch Patch0005: 0005-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0006: 0006-Translated-using-Weblate-Ukrainian.patch Patch0006: 0006-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch0007: 0007-convert-windows-Remove-extraneous-blank-lines-in-sou.patch Patch0007: 0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0008: 0008-convert-windows-Document-what-copy_qemu_ga-function-.patch Patch0008: 0008-RHEL-Disable-o-glance.patch
Patch0009: 0009-convert-windows-Remove-unused-open-Utils.patch Patch0009: 0009-RHEL-Remove-the-in-place-option.patch
Patch0010: 0010-o-kubevirt-Fix-mistake-in-error-message.patch Patch0010: 0010-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch
Patch0011: 0011-o-kubevirt-Move-cpu-element-under-domain.patch Patch0011: 0011-RHEL-9-tests-Remove-btrfs-test.patch
Patch0012: 0012-o-kubevirt-Error-on-invalid-output-guest-names.patch Patch0012: 0012-RHEL-9-Remove-block-driver-option.patch
Patch0013: 0013-Split-long-lines-in-messages.patch Patch0013: 0013-Update-common-submodule.patch
Patch0014: 0014-o-kubevirt-Implement-oo-compressed-for-qcow2-files.patch Patch0014: 0014-update-common-submodule.patch
Patch0015: 0015-v2v-Remove-use-of-anchored.patch Patch0015: 0015-LUKS-on-LVM-conversion-test-rename-VGs-and-LVs.patch
Patch0016: 0016-o-kubevirt-Replace-PCRE-anchored-with.patch Patch0016: 0016-LUKS-on-LVM-conversion-test-test-dev-mapper-VG-LV-tr.patch
Patch0017: 0017-o-libvirt-Add-correct-xmlns-libosinfo-for-Rocky-Linu.patch Patch0017: 0017-test-data-phony-guests-fix-prerequisite-list-of-fedo.patch
Patch0018: 0018-convert-linux-Require-host-cpu-for-all-RHEL-alike-9.patch Patch0018: 0018-lib-utils-fix-typo.patch
Patch0019: 0019-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch Patch0019: 0019-lib-utils-make-chown_for_libvirt_rhbz_1045069-fail-h.patch
Patch0020: 0020-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch Patch0020: 0020-docs-virt-v2v-document-libvirt-system-instance-start.patch
Patch0021: 0021-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0022: 0022-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0023: 0023-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0024: 0024-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch0025: 0025-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0026: 0026-RHEL-Disable-o-glance.patch
Patch0027: 0027-RHEL-Remove-the-in-place-option.patch
Patch0028: 0028-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch
Patch0029: 0029-RHEL-9-tests-Remove-btrfs-test.patch
%if !0%{?rhel} %if !0%{?rhel}
# libguestfs hasn't been built on i686 for a while since there is no # libguestfs hasn't been built on i686 for a while since there is no
@ -92,7 +83,7 @@ BuildRequires: /usr/bin/pod2man
BuildRequires: gcc BuildRequires: gcc
BuildRequires: ocaml >= 4.04 BuildRequires: ocaml >= 4.04
BuildRequires: libguestfs-devel >= 1:1.44 BuildRequires: libguestfs-devel >= 1:1.49.8-1
BuildRequires: augeas-devel BuildRequires: augeas-devel
BuildRequires: bash-completion BuildRequires: bash-completion
BuildRequires: file-devel BuildRequires: file-devel
@ -129,14 +120,15 @@ BuildRequires: nbdkit-python-plugin
BuildRequires: nbdkit-cow-filter >= 1.28.3-1.el9 BuildRequires: nbdkit-cow-filter >= 1.28.3-1.el9
%ifarch x86_64 %ifarch x86_64
BuildRequires: glibc-static BuildRequires: glibc-static
BuildRequires: sqlite
%endif %endif
%if 0%{verify_tarball_signature} %if 0%{verify_tarball_signature}
BuildRequires: gnupg2 BuildRequires: gnupg2
%endif %endif
Requires: libguestfs%{?_isa} >= 1:1.48.4-4.el9 Requires: libguestfs%{?_isa} >= 1:1.49.8-1
Requires: guestfs-tools >= 1.42 Requires: guestfs-tools >= 1.49.7-1
# XFS is the default filesystem in Fedora and RHEL. # XFS is the default filesystem in Fedora and RHEL.
Requires: libguestfs-xfs Requires: libguestfs-xfs
@ -299,15 +291,29 @@ fi
export LIBGUESTFS_DEBUG=1 export LIBGUESTFS_DEBUG=1
export LIBGUESTFS_TRACE=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), # 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 # so just perform a very simple conversion to check things are
# working. # working.
for f in windows.img fedora.img; do for f in windows.img fedora.img; do
make -C test-data/phony-guests $f 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 ./run virt-v2v -v -x -i disk test-data/phony-guests/$f -o null
fi fi
done 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 %endif
@ -353,6 +359,27 @@ done
%changelog %changelog
* Mon Jul 03 2023 Laszlo Ersek <lersek@redhat.com> - 1:2.3.4-5
- improve UX when running as root and we can't chown v2v tmpdir or socks
- make the appliance kernel UP in %check, for working around RHBZ#2216496
resolves: rhbz#2182024
* Tue Jun 20 2023 Laszlo Ersek <lersek@redhat.com> - 1:2.3.4-3
- recognize "--key /dev/mapper/VG-LV:key:password"
- enable the %%check tests for real
resolves: rhbz#2168506
* Fri Apr 28 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.4-2
- Rebase to virt-v2v 2.3.4
resolves: rhbz#2187961, rhbz#2175703, rhbz#2172075, rhbz#2168082,
rhbz#1986386
- Remove --block-driver option downstream
resolves: rhbz#2190387
* Sun Apr 09 2023 Laszlo Ersek <lersek@redhat.com> - 1:2.2.0-6
- cope with kernel-core / kernel-modules-core subpackage split in RHEL-9.2 guests
resolves: rhbz#2184970
* Mon Feb 06 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.2.0-5 * Mon Feb 06 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.2.0-5
- Rebase to virt-v2v 2.2.0 - Rebase to virt-v2v 2.2.0
resolves: rhbz#2135762 resolves: rhbz#2135762

Loading…
Cancel
Save