import OL virt-v2v-2.8.1-16.0.1.el10_1

This commit is contained in:
eabdullin 2026-02-05 11:37:45 +00:00
parent de69a61c32
commit c24009c015
8 changed files with 1090 additions and 4 deletions

View File

@ -0,0 +1,41 @@
From 24cd76732009fabd3070d1a1fcfee5cbfa5c229c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 12 Dec 2025 16:18:15 +0000
Subject: [PATCH] RHEL: output/output.ml: Remove cache=none
Virt-v2v tries to reduce the amount of page cache used when writing
out the disk image to the target storage. It does this by enabling the
cache=none option in nbdkit-file-plugin.
However, use of nbdkit-file-plugin cache=none option causes data
corruption with Dell PowerMax 8000 storage (only).
As this is only an advisory setting, remove it. Use of the page cache
can be limited instead using cgroupsv2 memory settings.
Fixes: https://issues.redhat.com/browse/RHEL-135617
(cherry picked from commit 30c03c7e308b063843a7848d15890871566bbbc0)
---
output/output.ml | 2 --
1 file changed, 2 deletions(-)
diff --git a/output/output.ml b/output/output.ml
index 15cb50db..5d9c044f 100644
--- a/output/output.ml
+++ b/output/output.ml
@@ -101,7 +101,6 @@ let output_to_local_file ?(changeuid = fun f -> f ())
| "raw" ->
let cmd = Nbdkit.create "file" in
Nbdkit.add_arg cmd "file" filename;
- Nbdkit.add_arg cmd "cache" "none";
if verbose () then Nbdkit.add_filter_if_available cmd "count";
let _, pid = Nbdkit.run_unix socket cmd in
pid
@@ -204,7 +203,6 @@ let create_local_output_disks dir
(* Create the single nbdkit-file-plugin instance. *)
let cmd = Nbdkit.create "file" in
Nbdkit.add_arg cmd "dir" output_storage;
- Nbdkit.add_arg cmd "cache" "none";
if verbose () then Nbdkit.add_filter_if_available cmd "count";
let _, pid = Nbdkit.run_unix socket cmd in
On_exit.kill pid;

View File

@ -0,0 +1,118 @@
From 1053eaf35267c20f451f581973e55474a1f2ee58 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 16 Oct 2025 12:32:40 +0100
Subject: [PATCH] input/input_vddk.ml: Handle subdirectories in nbdkit vddk
export wildcard
When calling nbdkit vddk plugin, we have to construct an export
parameter, which is a wildcard that matches all of the filenames we
will request. See:
https://libguestfs.org/nbdkit-vddk-plugin.1.html#PARAMETERS
The wildcard is checked using fnmatch(FNM_PATHNAME), so '/' characters
in the filename do *not* match '*' characters in the wildcard. As a
result, we failed before when the VMware filename was a path with
subdirectories.
Attempt some hairy functional programming to calculate a suitable
wildcard for these cases. This definitely won't handle the case where
we have filenames at different directory depths, because in fact
nbdkit itself cannot handle this case right now.
Reported-by: Ming Xie
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Fixes: https://issues.redhat.com/browse/RHEL-121728
Related: commit 5461976e229873a203062848c0de30e70067b3fb
Fixes: commit 076727e55f4d4fed246097d3f89ebfe83e3de88f
Related: https://issues.redhat.com/browse/RHEL-102734
(cherry picked from commit ba86b22c75a65240fdb65ac2e91c472c0f68f78e)
---
input/input_vddk.ml | 63 +++++++++++++++++++++++++++++++++++----------
1 file changed, 50 insertions(+), 13 deletions(-)
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
index e88befa2..7fd416b9 100644
--- a/input/input_vddk.ml
+++ b/input/input_vddk.ml
@@ -35,6 +35,53 @@ open Input
*)
let libNN = sprintf "lib%d" Sys.word_size
+(* Calculate the nbdkit vddk plugin 'export' parameter. This is a
+ * wildcard that must match all filenames given. nbdkit uses
+ * 'fnmatch (export, filename, FNM_PATHNAME)' when checking this,
+ * which means:
+ * - We have to escape any fnmatch-special chars such as '[' and '*'
+ * - '*' does not match '/' characters in the filename
+ *)
+let get_vddk_export_wildcard = function
+ | [] -> assert false (* can't happen, checked by the caller *)
+ | [f] -> fnmatch_escape f (* single file, just escape the whole thing *)
+ | files ->
+ (* We implicitly assume all files end in *.vmdk, check that. *)
+ List.iter (fun f -> assert (String.ends_with ".vmdk" f)) files;
+
+ (* Calculate the longest common prefix of all the filenames.
+ * Remove the prefix from each filename, leaving the remainder strings.
+ * eg.
+ * "foobar", "foobazs" => prefix = "fooba", remainders = ["r", "zs"]
+ *)
+ let prefix = String.longest_common_prefix files in
+ let prefix_len = String.length prefix in
+ let remainders = List.map (
+ fun f ->
+ let n = String.length f in
+ assert (prefix_len <= n);
+ String.sub f prefix_len (n - prefix_len)
+ ) files in
+
+ (* The number of '/' (slash) characters in the remainders must be
+ * the same, otherwise there's something weird with subdirectories
+ * going on that we can't handle yet. (XXX If this happens, then
+ * we'd need to change nbdkit because it cannot possibly handle
+ * a wildcard that matches different directory depths).
+ *)
+ let count_slashes = List.map (String.count_chars '/') remainders in
+ let nr_slashes = List.hd count_slashes in
+ List.iter (fun nr -> assert (nr_slashes = nr)) count_slashes;
+
+ (* Now we need to generate "*/*/*" for this number of slashes. *)
+ let stars = List.make (nr_slashes+1) "*" in
+ let stars_n_slashes = String.concat "/" stars in
+
+ (* Construct the final wildcard. Note we only need to
+ * escape the prefix (the only part which is user content).
+ *)
+ fnmatch_escape prefix ^ stars_n_slashes ^ ".vmdk"
+
module VDDK = struct
let to_string options args =
let xs = "-it vddk" :: args in
@@ -415,24 +462,14 @@ See also the virt-v2v-input-vmware(1) manual.") libNN
* instance of nbdkit.
*)
if Nbdkit.probe_plugin_parameter "vddk" "export=" then (
- let wildcard =
- match files with
- | [] -> assert false (* can't happen, see assert above *)
- | [f] -> fnmatch_escape f
- | files ->
- (* Calculate the longest common prefix across all the files,
- * then set the wildcard to this.
- * XXX May not work if there are subdirectories?
- * XXX Is every file we want to read called *.vmdk?
- *)
- let prefix = String.longest_common_prefix files in
- fnmatch_escape prefix ^ "*.vmdk" in
-
let socket = sprintf "%s/in0" dir in
On_exit.unlink socket;
let nbdkit = create_nbdkit_vddk () in
+
+ let wildcard = get_vddk_export_wildcard files in
Nbdkit.add_arg nbdkit "export" wildcard;
+
let _, pid = Nbdkit.run_unix socket nbdkit in
On_exit.kill pid;

View File

@ -0,0 +1,127 @@
From c1119abb08bc27609f99f99a4d2f5c8e71f06cd5 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 20 Oct 2025 14:50:07 +0100
Subject: [PATCH] input/input_vddk.ml: Pass only longest prefix to vddk export
parameter
See discussion on https://gitlab.com/nbdkit/nbdkit/-/merge_requests/113
nbdkit commit 01b429c412 ("vddk: Don't use FNM_PATHNAME when matching
export parameter") removes the FNM_PATHNAME restriction, so we can
just use the longest common prefix again.
This change requires nbdkit >= 1.45.11. I think it's time to raise
the minimum version of nbdkit anyway, so starting with virt-v2v 2.10,
nbdkit 1.46 will be required. If you use too old nbdkit you will see
the error:
virt-v2v: error: nbdkit must be >= 1.45.11 for input from VDDK
This partially reverts commit ba86b22c75 ("input/input_vddk.ml: Handle
subdirectories in nbdkit vddk export wildcard") but I didn't actually
revert that commit because I wanted to keep the explantory comments in
the code.
Reverts: commit ba86b22c75
Related: https://gitlab.com/nbdkit/nbdkit/-/merge_requests/113
Related: https://gitlab.com/nbdkit/nbdkit/-/commit/01b429c412504a491a4b5cc009a9c2e906f993ef
Related: https://issues.redhat.com/browse/RHEL-121728
Cherry picked from commit dda93d7fd3ef5b2cdf25cfefa0b2d41207fa54f6,
but remove the hard test for nbdkit >= 1.45.11, and replace it with
an RPM dependency.
---
README | 2 +-
input/input_vddk.ml | 46 ++++++++++++++++-----------------------------
2 files changed, 17 insertions(+), 31 deletions(-)
diff --git a/README b/README
index 407869b4..b21cb87d 100644
--- a/README
+++ b/README
@@ -56,7 +56,7 @@ REQUIREMENTS
* OCaml bindings for libnbd
-* nbdkit >= 1.28 (https://gitlab.com/nbdkit/nbdkit)
+* nbdkit >= 1.45.11 (https://gitlab.com/nbdkit/nbdkit)
* These nbdkit plugins and filters:
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
index 7fd416b9..f420192b 100644
--- a/input/input_vddk.ml
+++ b/input/input_vddk.ml
@@ -36,11 +36,15 @@ open Input
let libNN = sprintf "lib%d" Sys.word_size
(* Calculate the nbdkit vddk plugin 'export' parameter. This is a
- * wildcard that must match all filenames given. nbdkit uses
- * 'fnmatch (export, filename, FNM_PATHNAME)' when checking this,
- * which means:
- * - We have to escape any fnmatch-special chars such as '[' and '*'
- * - '*' does not match '/' characters in the filename
+ * wildcard that must match all filenames given.
+ *
+ * nbdkit 1.44 used 'fnmatch (export, filename, FNM_PATHNAME)'
+ * which means '*' does not match '/' characters in the filename.
+ * Unfortunately this made it impossible to match certain paths,
+ * in particular if the guest has some files in a subdirectory.
+ *
+ * nbdkit 1.46 relaxes this to 'fnmatch (export, filename, 0)',
+ * so a simple longest prefix works.
*)
let get_vddk_export_wildcard = function
| [] -> assert false (* can't happen, checked by the caller *)
@@ -50,37 +54,14 @@ let get_vddk_export_wildcard = function
List.iter (fun f -> assert (String.ends_with ".vmdk" f)) files;
(* Calculate the longest common prefix of all the filenames.
- * Remove the prefix from each filename, leaving the remainder strings.
- * eg.
- * "foobar", "foobazs" => prefix = "fooba", remainders = ["r", "zs"]
+ * eg. "foobar", "foobazs" => prefix = "fooba"
*)
let prefix = String.longest_common_prefix files in
- let prefix_len = String.length prefix in
- let remainders = List.map (
- fun f ->
- let n = String.length f in
- assert (prefix_len <= n);
- String.sub f prefix_len (n - prefix_len)
- ) files in
-
- (* The number of '/' (slash) characters in the remainders must be
- * the same, otherwise there's something weird with subdirectories
- * going on that we can't handle yet. (XXX If this happens, then
- * we'd need to change nbdkit because it cannot possibly handle
- * a wildcard that matches different directory depths).
- *)
- let count_slashes = List.map (String.count_chars '/') remainders in
- let nr_slashes = List.hd count_slashes in
- List.iter (fun nr -> assert (nr_slashes = nr)) count_slashes;
-
- (* Now we need to generate "*/*/*" for this number of slashes. *)
- let stars = List.make (nr_slashes+1) "*" in
- let stars_n_slashes = String.concat "/" stars in
(* Construct the final wildcard. Note we only need to
* escape the prefix (the only part which is user content).
*)
- fnmatch_escape prefix ^ stars_n_slashes ^ ".vmdk"
+ fnmatch_escape prefix ^ "*.vmdk"
module VDDK = struct
let to_string options args =
@@ -283,6 +264,11 @@ information on these settings.
(* Check we have nbdkit and the vddk plugin and the cow filter. *)
if not (Nbdkit.is_installed ()) then
error (f_"nbdkit is not installed or not working");
+(* Remove this test for RHEL 10.1-z, we will enforce it through
+ RPM dependencies instead.
+ if not (Nbdkit.version () >= (1, 45, 11)) then
+ error (f_"nbdkit must be >= 1.45.11 for input from VDDK");
+*)
if not (Nbdkit.probe_plugin "vddk") then
error (f_"nbdkit-vddk-plugin is not installed");
if not (Nbdkit.probe_filter "cow") then

View File

@ -0,0 +1,364 @@
From 4b5e135960edde0091aa25fd070934fa643c5299 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 26 Aug 2025 12:33:18 +0100
Subject: [PATCH] v2v: Add --memsize and --smp options
For a long time in virt-builder and virt-customize, we have had
options --memsize and --smp which let you override the default amount
of memory and number of vCPUs assigned to the libguestfs appliance.
Usually virt-builder / virt-customize choose suitable numbers, but
occasionally (for example if you need to --install a large package or
--run a heavyweight program) we cannot anticipate what is needed so
it's useful to allow these to be overridden by the user.
Virt-v2v by default choses 2560MB and min (8, NR_CPUS) for these.
However much the same as above applies, especially since we added
virt-customize features to virt-v2v. It's useful to have these
options as additional control or to "just get it working", although
generally we should still try to make virt-v2v choose good defaults.
Also add the same options to virt-v2v-in-place and virt-v2v-inspector.
(cherry picked from commit 03b656ed468ecbe309e7cca24721de9369d476aa)
---
convert/convert.ml | 29 ++++++++++++++++++++++++-----
convert/convert.mli | 2 ++
docs/virt-v2v-in-place.pod | 17 +++++++++++++++++
docs/virt-v2v-inspector.pod | 6 ++++++
docs/virt-v2v.pod | 17 +++++++++++++++++
in-place/in_place.ml | 13 +++++++++++++
inspector/inspector.ml | 13 +++++++++++++
v2v/v2v.ml | 13 +++++++++++++
8 files changed, 105 insertions(+), 5 deletions(-)
diff --git a/convert/convert.ml b/convert/convert.ml
index 6c78bd99..0b6c88f9 100644
--- a/convert/convert.ml
+++ b/convert/convert.ml
@@ -34,8 +34,10 @@ type options = {
block_driver : guestcaps_block_type;
keep_serial_console : bool;
ks : key_store;
+ memsize : int option;
network_map : Networks.t;
root_choice : root_choice;
+ smp : int option;
static_ips : static_ip list;
customize_ops : Customize_cmdline.ops;
}
@@ -54,11 +56,28 @@ let rec convert input_disks options source =
message (f_"Opening the source");
let g = open_guestfs ~identifier:"v2v" () in
g#set_program "virt-v2v";
- 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.
- *)
- g#set_smp (min 8 (Sysconf.nr_processors_online ()));
+ let memsize =
+ match options.memsize with
+ | None ->
+ (* Default (if [--memsize] option is not used) is to calculate
+ * some multiple of the libguestfs default memory size.
+ *)
+ g#get_memsize () * 2
+ | Some memsize -> memsize in
+ g#set_memsize memsize;
+ let smp =
+ match options.smp with
+ | None ->
+ (* Default (if [--smp] option is not used) is to set the number
+ * according to the number of physical CPUs on the host, but
+ * limit it because each vCPU consumes guest RAM. This is
+ * necessary to allow parallel mkinitrd which greatly improves
+ * performance.
+ *)
+ min 8 (Sysconf.nr_processors_online ())
+ | Some smp -> smp in
+ g#set_smp smp;
+
(* The network is used by the unconfigure_vmware () function, and the "--key
* ID:clevis" command line options (if any). *)
g#set_network true;
diff --git a/convert/convert.mli b/convert/convert.mli
index b34f04e0..85ed05cb 100644
--- a/convert/convert.mli
+++ b/convert/convert.mli
@@ -20,8 +20,10 @@ type options = {
block_driver : Types.guestcaps_block_type; (** [--block-driver] option *)
keep_serial_console : bool;
ks : Tools_utils.key_store; (** [--key] option *)
+ memsize : int option; (** [--memsize] option *)
network_map : Networks.t; (** [-b] and [-n] options *)
root_choice : Types.root_choice; (** [--root] option *)
+ smp : int option; (** [--smp] option *)
static_ips : Types.static_ip list; (** [--mac :ip:] option *)
customize_ops : Customize_cmdline.ops; (** virt-customize options *)
}
diff --git a/docs/virt-v2v-in-place.pod b/docs/virt-v2v-in-place.pod
index 9714bbac..2d1857b9 100644
--- a/docs/virt-v2v-in-place.pod
+++ b/docs/virt-v2v-in-place.pod
@@ -197,6 +197,14 @@ This option is used to make the output more machine friendly
when being parsed by other programs. See
L<virt-v2v(1)/Machine readable output>.
+=item B<-m> MB
+
+=item B<--memsize> MB
+
+Change the amount of memory allocated when doing the conversion.
+Virt-v2v-in-place will usually choose a suitable default. Increase
+this if you see that the conversion step is running out of memory.
+
=item B<-n> in:out
=item B<-n> out
@@ -244,6 +252,15 @@ This disables progress bars and other unnecessary output.
Choose the root filesystem to be converted. See the documentation of
this option in L<virt-v2v(1)>.
+=item B<--smp> N
+
+Change the number of virtual CPUs used when doing the conversion.
+Virt-v2v-in-place will usually choose a suitable default.
+
+Increasing this beyond 8 may improve conversion performance, if your
+host has sufficient physical CPUs. You may also need to increase the
+memory size (I<--memsize> option).
+
=item B<-v>
=item B<--verbose>
diff --git a/docs/virt-v2v-inspector.pod b/docs/virt-v2v-inspector.pod
index 29adcb56..26770459 100644
--- a/docs/virt-v2v-inspector.pod
+++ b/docs/virt-v2v-inspector.pod
@@ -194,6 +194,10 @@ virt-v2v-inspector.
=item B<--machine-readable>=format
+=item B<-m> MB
+
+=item B<--memsize> MB
+
=item B<-n> ...
=item B<--network> ...
@@ -204,6 +208,8 @@ virt-v2v-inspector.
=item B<--root> ...
+=item B<--smp> N
+
=item B<--wrap>
These options work in the same way as the equivalent virt-v2v options.
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index b63da9f3..76a53e34 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -386,6 +386,14 @@ This option is used to make the output more machine friendly
when being parsed by other programs. See
L</Machine readable output> below.
+=item B<-m> MB
+
+=item B<--memsize> MB
+
+Change the amount of memory allocated when doing the conversion.
+Virt-v2v will usually choose a suitable default. Increase this if you
+see that the conversion step is running out of memory.
+
=item B<-n> in:out
=item B<-n> out
@@ -646,6 +654,15 @@ would mean to use the second partition on the first hard drive. If
the named root device does not exist or was not detected as a root
device, then virt-v2v will fail.
+=item B<--smp> N
+
+Change the number of virtual CPUs used when doing the conversion.
+Virt-v2v will usually choose a suitable default.
+
+Increasing this beyond 8 may improve conversion performance, if your
+host has sufficient physical CPUs. You may also need to increase the
+memory size (I<--memsize> option).
+
=item B<-v>
=item B<--verbose>
diff --git a/in-place/in_place.ml b/in-place/in_place.ml
index dba0772c..2ee3abc4 100644
--- a/in-place/in_place.ml
+++ b/in-place/in_place.ml
@@ -66,6 +66,11 @@ let rec main () =
)
in
+ let memsize = ref None in
+ let set_memsize arg = memsize := Some arg in
+ let smp = ref None in
+ let set_smp arg = smp := Some arg in
+
let network_map = Networks.create () in
let output_xml = ref No_output_xml in
@@ -173,6 +178,8 @@ let rec main () =
s_"Use password from file to connect to input hypervisor";
[ L"mac" ], Getopt.String ("mac:network|bridge|ip:out", add_mac),
s_"Map NIC to network or bridge or assign static IP";
+ [ S 'm'; L"memsize" ], Getopt.Int ("mb", set_memsize),
+ s_"Set memory size";
[ S 'n'; L"network" ], Getopt.String ("in:out", add_network),
s_"Map network in to out";
[ S 'O' ], Getopt.String ("output.xml", set_output_xml_option),
@@ -181,6 +188,8 @@ let rec main () =
s_"Print source and stop";
[ L"root" ], Getopt.String ("ask|... ", set_root_choice),
s_"How to choose root filesystem";
+ [ L"smp" ], Getopt.Int ("vcpus", set_smp),
+ s_"Set number of vCPUs";
] in
(* Append virt-customize options. *)
@@ -233,9 +242,11 @@ read the man page virt-v2v-in-place(1).
let customize_ops = get_customize_ops () in
let input_conn = !input_conn in
let input_mode = !input_mode in
+ let memsize = !memsize in
let output_xml = !output_xml in
let print_source = !print_source in
let root_choice = !root_choice in
+ let smp = !smp in
let static_ips = !static_ips in
(* No arguments and machine-readable mode? Print out some facts
@@ -295,8 +306,10 @@ read the man page virt-v2v-in-place(1).
Convert.block_driver = Virtio_blk;
keep_serial_console = true;
ks = opthandle.ks;
+ memsize;
network_map;
root_choice;
+ smp;
static_ips;
customize_ops;
} in
diff --git a/inspector/inspector.ml b/inspector/inspector.ml
index 50b8f711..752a5c1c 100644
--- a/inspector/inspector.ml
+++ b/inspector/inspector.ml
@@ -65,6 +65,11 @@ let rec main () =
)
in
+ let memsize = ref None in
+ let set_memsize arg = memsize := Some arg in
+ let smp = ref None in
+ let set_smp arg = smp := Some arg in
+
let network_map = Networks.create () in
let static_ips = ref [] in
let rec add_network str =
@@ -164,12 +169,16 @@ let rec main () =
s_"Input transport";
[ L"mac" ], Getopt.String ("mac:network|bridge|ip:out", add_mac),
s_"Map NIC to network or bridge or assign static IP";
+ [ S 'm'; L"memsize" ], Getopt.Int ("mb", set_memsize),
+ s_"Set memory size";
[ S 'n'; L"network" ], Getopt.String ("in:out", add_network),
s_"Map network in to out";
[ S 'O' ], Getopt.String ("output.xml", set_output_file_option),
s_"Set the output filename";
[ L"root" ], Getopt.String ("ask|... ", set_root_choice),
s_"How to choose root filesystem";
+ [ L"smp" ], Getopt.Int ("vcpus", set_smp),
+ s_"Set number of vCPUs";
] in
(* Append virt-customize options. *)
@@ -223,7 +232,9 @@ read the man page virt-v2v-inspector(1).
| Some "vddk" -> Some Input.VDDK
| Some transport ->
error (f_"unknown input transport -it %s") transport in
+ let memsize = !memsize in
let root_choice = !root_choice in
+ let smp = !smp in
let static_ips = !static_ips in
(* No arguments and machine-readable mode? Print out some facts
@@ -276,8 +287,10 @@ read the man page virt-v2v-inspector(1).
Convert.block_driver = Virtio_blk;
keep_serial_console = true;
ks = opthandle.ks;
+ memsize;
network_map;
root_choice;
+ smp;
static_ips;
customize_ops;
} in
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index c274baa0..20082544 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -73,7 +73,12 @@ let rec main () =
)
in
+ let memsize = ref None in
+ let set_memsize arg = memsize := Some arg in
let parallel = ref 1 in
+ let smp = ref None in
+ let set_smp arg = smp := Some arg in
+
let network_map = Networks.create () in
let static_ips = ref [] in
let rec add_network str =
@@ -216,6 +221,8 @@ let rec main () =
s_"Use virt-v2v-in-place instead";
[ L"mac" ], Getopt.String ("mac:network|bridge|ip:out", add_mac),
s_"Map NIC to network or bridge or assign static IP";
+ [ S 'm'; L"memsize" ], Getopt.Int ("mb", set_memsize),
+ s_"Set memory size";
[ S 'n'; L"network" ], Getopt.String ("in:out", add_network),
s_"Map network in to out";
[ S 'o' ], Getopt.String (output_modes, set_output_mode),
@@ -240,6 +247,8 @@ let rec main () =
s_"Print source and stop";
[ L"root" ], Getopt.String ("ask|... ", set_root_choice),
s_"How to choose root filesystem";
+ [ L"smp" ], Getopt.Int ("vcpus", set_smp),
+ s_"Set number of vCPUs";
] in
(* Append virt-customize options. *)
@@ -299,6 +308,7 @@ read the man page virt-v2v(1).
| Some "vddk" -> Some Input.VDDK
| Some transport ->
error (f_"unknown input transport -it %s") transport in
+ let memsize = !memsize in
let output_alloc =
match !output_alloc with
| `Not_set | `Sparse -> Types.Sparse
@@ -310,6 +320,7 @@ read the man page virt-v2v(1).
error (f_"--parallel parameter must be >= 1");
let print_source = !print_source in
let root_choice = !root_choice in
+ let smp = !smp in
let static_ips = !static_ips in
(* No arguments and machine-readable mode? Print out some facts
@@ -402,8 +413,10 @@ read the man page virt-v2v(1).
Convert.block_driver = Virtio_blk;
keep_serial_console = not remove_serial_console;
ks = opthandle.ks;
+ memsize;
network_map;
root_choice;
+ smp;
static_ips;
customize_ops;
} in

View File

@ -0,0 +1,60 @@
From edfb40af35c5922b6f7a5595f95f063b3a31fcba Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 30 Oct 2025 17:48:39 +0000
Subject: [PATCH] docs: Add more description for --memsize option
The adjustable --memsize option, which increases the amount of memory
available in the appliance, is necessary to work around at least one
unfixable setfiles / glibc bug. Document in more detail what this
option does in a new section, and mention this issue. (As the issue
can't be fixed properly, this is a documentation-only fix).
Fixes: https://issues.redhat.com/browse/RHEL-125116
(cherry picked from commit 9bb2e7d4705811f0e227103c14757895e5f591d9)
---
docs/virt-v2v.pod | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 76a53e34..ff31bb00 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -394,6 +394,8 @@ Change the amount of memory allocated when doing the conversion.
Virt-v2v will usually choose a suitable default. Increase this if you
see that the conversion step is running out of memory.
+See also L</Adjusting memory available for conversion>.
+
=item B<-n> in:out
=item B<-n> out
@@ -742,11 +744,27 @@ alleviate this.
=head2 Compute power and RAM
+Virt-v2v can be run in a virtual machine, but may run faster on bare
+metal.
+
Virt-v2v is not especially compute or RAM intensive. If you are
running many parallel conversions, then you may consider allocating
-one CPU core and 2 GB of RAM per running instance.
+one CPU core and 2 GB of RAM per running instance. (You may adjust
+the amount of memory used by conversion, see the next heading.)
-Virt-v2v can be run in a virtual machine.
+=head2 Adjusting memory available for conversion
+
+Virt-v2v I<--memsize=N> can be used to increase the amount of memory
+available to do conversion. This rarely needs to be adjusted, but can
+help to workaround some conversion problems.
+
+=head3 Linux: setfiles runs out of memory when relabelling
+
+For Linux guests that use SELinux, setfiles can run out of memory if a
+single directory contains millions of files. As there is no simple
+way for virt-v2v to detect this problem in advance, you may have to
+use I<--memsize=4000> (or larger) to convert such guests. For details
+see L<https://issues.redhat.com/browse/RHEL-125116>
=head2 Trimming

View File

@ -0,0 +1,351 @@
From 9bd7e17d0b34f939eab0c18cef7fd4bb74269c20 Mon Sep 17 00:00:00 2001
From: Darren Archibald <darren.archibald@oracle.com>
Date: Tue, 9 Sep 2025 04:07:35 -0700
Subject: [PATCH] replaced upstream references
Signed-off-by: Darren Archibald <darren.archibald@oracle.com>
Signed-off-by: Akshata Konala <akshata.konala@oracle.com>
---
po/Makefile.am | 2 +-
po/cs.po | 3 +--
po/de.po | 3 +--
po/es.po | 3 +--
po/fi.po | 3 +--
po/fr.po | 3 +--
po/gu.po | 3 +--
po/hi.po | 3 +--
po/ja.po | 3 +--
po/ka.po | 3 +--
po/kn.po | 3 +--
po/ml.po | 3 +--
po/mr.po | 3 +--
po/nl.po | 3 +--
po/or.po | 3 +--
po/pa.po | 3 +--
po/pl.po | 3 +--
po/si.po | 3 +--
po/uk.po | 3 +--
po/virt-v2v.pot | 3 +--
podwrapper.pl.in | 4 ++--
website/index.html.in | 6 +++---
22 files changed, 25 insertions(+), 44 deletions(-)
diff --git a/po/Makefile.am b/po/Makefile.am
index 08d9dbe..61f472b 100644
--- a/po/Makefile.am
+++ b/po/Makefile.am
@@ -19,7 +19,7 @@ include $(top_srcdir)/subdir-rules.mk
DOMAIN = $(PACKAGE_NAME)
COPYRIGHT_HOLDER = Red Hat Inc.
-MSGID_BUGS_ADDRESS = https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
+MSGID_BUGS_ADDRESS = https://github.com/oracle/oracle-linux
# Languages.
# Don't use LINGUAS (uppercase) as Gentoo defines it (RHBZ#804464).
diff --git a/po/cs.po b/po/cs.po
index 55c4fdc..5003e14 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -2,8 +2,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2023-04-08 18:20+0000\n"
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
diff --git a/po/de.po b/po/de.po
index e8d9053..835535e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,8 +9,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:48+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/es.po b/po/es.po
index 1a63337..8800235 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,8 +10,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-03-16 07:04+0000\n"
"Last-Translator: Alex Puchades <alex94puchades@gmail.com>\n"
diff --git a/po/fi.po b/po/fi.po
index 56f9917..b077010 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -6,8 +6,7 @@
msgid ""
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"
+"Report-Msgid-Bugs-To: https://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2025-01-09 11:33+0000\n"
"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\n"
diff --git a/po/fr.po b/po/fr.po
index 2db1ae1..2ba25d0 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,8 +10,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2023-03-21 09:20+0000\n"
"Last-Translator: grimst <grimaitres@gmail.com>\n"
diff --git a/po/gu.po b/po/gu.po
index 5b4e798..9c540cd 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -8,8 +8,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:49+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/hi.po b/po/hi.po
index a3983ed..0364d75 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -8,8 +8,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:49+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/ja.po b/po/ja.po
index 23d34f2..c14299e 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -9,8 +9,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2017-02-24 07:33+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/ka.po b/po/ka.po
index 78ebee4..b116e86 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -6,8 +6,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2025-01-09 09:27+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
diff --git a/po/kn.po b/po/kn.po
index 3de0f89..bd0e5b0 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -7,8 +7,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:50+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/ml.po b/po/ml.po
index 7a3f071..7de8c16 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,8 +7,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:50+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/mr.po b/po/mr.po
index 8222d63..7f55091 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -8,8 +8,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:51+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/nl.po b/po/nl.po
index 06df912..b25b908 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -9,8 +9,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:51+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/or.po b/po/or.po
index 2422cc3..92a2500 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7,8 +7,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:51+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/pa.po b/po/pa.po
index e2465b6..73a8db6 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -8,8 +8,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2015-02-21 10:52+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
diff --git a/po/pl.po b/po/pl.po
index 77f4651..16c7459 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -11,8 +11,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2024-01-15 13:36+0000\n"
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
diff --git a/po/si.po b/po/si.po
index 3fc531a..3c3f7cd 100644
--- a/po/si.po
+++ b/po/si.po
@@ -6,8 +6,7 @@
msgid ""
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"
+"Report-Msgid-Bugs-To: https://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
diff --git a/po/uk.po b/po/uk.po
index ea5ca97..ae7f4e6 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -12,8 +12,7 @@
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://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-02-27 18:15+0000\n"
"PO-Revision-Date: 2024-12-22 07:38+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
diff --git a/po/virt-v2v.pot b/po/virt-v2v.pot
index 60bbf0c..ea2fb85 100644
--- a/po/virt-v2v.pot
+++ b/po/virt-v2v.pot
@@ -7,8 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: virt-v2v 2.8.1\n"
-"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
-"component=libguestfs&product=Virtualization+Tools\n"
+"Report-Msgid-Bugs-To: https://github.com/oracle/oracle-linux\n"
"POT-Creation-Date: 2025-06-26 16:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
diff --git a/podwrapper.pl.in b/podwrapper.pl.in
index d7973fc..0a196f3 100755
--- a/podwrapper.pl.in
+++ b/podwrapper.pl.in
@@ -432,10 +432,10 @@ my $reporting_bugs =
"=head1 BUGS
To get a list of bugs against libguestfs, use this link:
-L<https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools>
+L<https://github.com/oracle/oracle-linux>
To report a new bug against libguestfs, use this link:
-L<https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools>
+L<https://github.com/oracle/oracle-linux>
When reporting a bug, please supply:
diff --git a/website/index.html.in b/website/index.html.in
index f578523..e1e1592 100644
--- a/website/index.html.in
+++ b/website/index.html.in
@@ -160,12 +160,12 @@ For testers:
<h2>Bug reports</h2>
<p>
-<a href="https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools">List of bugs in libguestfs</a> and
-<a href="https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Fedora">in Fedora packaging of libguestfs</a>
+<a href="https://github.com/oracle/oracle-linux">List of bugs in libguestfs</a> and
+<a href="https://github.com/oracle/oracle-linux">in Community packaging of libguestfs</a>
</p>
<p>
-<a href="https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools">Enter a new bug report</a>
+<a href="https://github.com/oracle/oracle-linux">Enter a new bug report</a>
</p>
</div>
--
2.31.1

0
copy-patches.sh Executable file → Normal file
View File

View File

@ -7,7 +7,7 @@
Name: virt-v2v
Epoch: 1
Version: 2.8.1
Release: 13%{?dist}
Release: 16.0.1%{?dist}
Summary: Convert a virtual machine to run on KVM
License: GPL-2.0-or-later AND LGPL-2.0-or-later
@ -61,6 +61,14 @@ Patch0031: 0031-convert-Look-for-GRUB-signature-first-to-identify-bo.patch
Patch0032: 0032-lib-types.ml-Fix-formatting-of-debug-message.patch
Patch0033: 0033-convert-windows-Fix-ESP-conversion-if-C-Windows-Temp.patch
Patch0034: 0034-Update-common-submodule.patch
Patch0035: 0035-RHEL-output-output.ml-Remove-cache-none.patch
Patch0036: 0036-input-input_vddk.ml-Handle-subdirectories-in-nbdkit-.patch
Patch0037: 0037-input-input_vddk.ml-Pass-only-longest-prefix-to-vddk.patch
Patch0038: 0038-v2v-Add-memsize-and-smp-options.patch
Patch0039: 0039-docs-Add-more-description-for-memsize-option.patch
# Oracle patch
Patch1001: 1001-replaced-upstream-references.patch
%if !0%{?rhel}
# libguestfs hasn't been built on i686 for a while since there is no
@ -120,7 +128,7 @@ BuildRequires: nbdkit-null-plugin
%if !0%{?rhel}
BuildRequires: nbdkit-python-plugin
%endif
BuildRequires: nbdkit-cow-filter >= 1.28.3-1.el9
BuildRequires: nbdkit-cow-filter
BuildRequires: mingw-srvany-redistributable >= 1.1-6
%ifarch x86_64
BuildRequires: glibc-static
@ -169,7 +177,7 @@ Requires: libnbd >= 1.10
Requires: %{_bindir}/qemu-nbd
Requires: %{_bindir}/nbdcopy
Requires: %{_bindir}/nbdinfo
Requires: nbdkit-server >= 1.28.3-1.el9
Requires: nbdkit-server >= 1.44.1-3.el10_1
Requires: nbdkit-curl-plugin
Requires: nbdkit-file-plugin
Requires: nbdkit-nbd-plugin
@ -182,7 +190,7 @@ Requires: nbdkit-ssh-plugin
Requires: nbdkit-vddk-plugin
%endif
Requires: nbdkit-blocksize-filter
Requires: nbdkit-cow-filter >= 1.28.3-1.el9
Requires: nbdkit-cow-filter
Requires: nbdkit-multi-conn-filter
Requires: nbdkit-noextents-filter
Requires: nbdkit-rate-filter
@ -351,6 +359,23 @@ done
%changelog
* Wed Feb 04 2026 EL Errata <el-errata_ww@oracle.com> - 2.8.1-16.0.1
- Replaced bugzilla.oracle.com references [Orabug: 34202300]
- replaced upstream references [Orabug:34089586]
* Wed Jan 07 2026 Richard W.M. Jones <rjones@redhat.com> - 1:2.8.1-16
- Add --memsize and --smp options
resolves: RHEL-139153
* Tue Jan 06 2026 Richard W.M. Jones <rjones@redhat.com> - 1:2.8.1-15
- v2v can't convert guest with multiple windows OS on rhel10
- Add runtime requires for nbdkit-1.44.1-3.el10_1
resolves: RHEL-137304
* Mon Dec 15 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.8.1-14
- Remove cache=none
resolves: RHEL-135750
* Mon Nov 17 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.8.1-13
- Fix pnputil driver store after conversion
resolves: RHEL-128908