Compare commits
No commits in common. "c9-beta" and "a9-ppc64le" have entirely different histories.
c9-beta
...
a9-ppc64le
@ -1,13 +1,21 @@
|
|||||||
From a2faa7d57ea997e4194e95a5ccdf2b9e41376f55 Mon Sep 17 00:00:00 2001
|
From 31b4b33ec87560182f338a088bd242d571bc79e7 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, 6 Aug 2024 08:51:29 +0100
|
Date: Tue, 27 Aug 2024 13:46:46 +0100
|
||||||
Subject: [PATCH] Update common submodule
|
Subject: [PATCH] Update common submodule
|
||||||
|
|
||||||
Considerable changes have been made in virt-v2v to how powershell
|
Pick up the commits below. In particular this makes several
|
||||||
scripts are run in Windows guests, and to qemu-ga installation (also
|
refinements to the Windows firstboot code to make it more reliable.
|
||||||
for Windows). This pulls in the following commits:
|
|
||||||
|
|
||||||
Richard W.M. Jones (10):
|
Fixes: https://issues.redhat.com/browse/RHEL-55824
|
||||||
|
|
||||||
|
Ben Brown (1):
|
||||||
|
Initialise bar->fp as NULL
|
||||||
|
|
||||||
|
Richard W.M. Jones (16):
|
||||||
|
mlcustomize: Update virt-customize generated files
|
||||||
|
options: Allow nbd+unix:// URIs
|
||||||
|
mlcustomize: Add virt-customize --inject-blnsvr generated files
|
||||||
|
mlcustomize: Add Inject_virtio_win.inject_blnsvr implementation
|
||||||
mlcustomize: firstboot: Use Linux path for Powershell script path
|
mlcustomize: firstboot: Use Linux path for Powershell script path
|
||||||
mlcustomize: firstboot: Use powershell.exe instead of path
|
mlcustomize: firstboot: Use powershell.exe instead of path
|
||||||
mlcustomize: firstboot: Use Powershell -NoProfile flag
|
mlcustomize: firstboot: Use Powershell -NoProfile flag
|
||||||
@ -18,15 +26,74 @@ Richard W.M. Jones (10):
|
|||||||
mlcustomize: Place powershell scripts into <firstboot_dir>\Temp
|
mlcustomize: Place powershell scripts into <firstboot_dir>\Temp
|
||||||
mlcustomize: Inject qemu-ga & blnsvr into <firstboot_dir>/Temp
|
mlcustomize: Inject qemu-ga & blnsvr into <firstboot_dir>/Temp
|
||||||
mlcustomize: Write qemu-ga log file name to log.txt
|
mlcustomize: Write qemu-ga log file name to log.txt
|
||||||
|
mlcustomize: Add some comments to firstboot batch file
|
||||||
(cherry picked from commit b8d57760ea9c9d3ec7a21ee41d74731ab81173df)
|
mlcustomize: Reboot Windows between each firstboot script
|
||||||
---
|
---
|
||||||
common | 2 +-
|
common | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
customize/customize_run.ml | 3 +++
|
||||||
|
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
Submodule common 830cbdcf4..7b84a370e:
|
Submodule common 54869c987..a78839676:
|
||||||
|
diff --git a/common/mlcustomize/customize-synopsis.pod b/common/mlcustomize/customize-synopsis.pod
|
||||||
|
index bb0ce1255..957de8cf2 100644
|
||||||
|
--- a/common/mlcustomize/customize-synopsis.pod
|
||||||
|
+++ b/common/mlcustomize/customize-synopsis.pod
|
||||||
|
@@ -3,16 +3,16 @@
|
||||||
|
[--copy SOURCE:DEST] [--copy-in LOCALPATH:REMOTEDIR]
|
||||||
|
[--delete PATH] [--edit FILE:EXPR] [--firstboot SCRIPT]
|
||||||
|
[--firstboot-command 'CMD+ARGS'] [--firstboot-install PKG,PKG..]
|
||||||
|
- [--hostname HOSTNAME] [--inject-qemu-ga METHOD]
|
||||||
|
- [--inject-virtio-win METHOD] [--install PKG,PKG..]
|
||||||
|
- [--link TARGET:LINK[:LINK..]] [--mkdir DIR] [--move SOURCE:DEST]
|
||||||
|
- [--password USER:SELECTOR] [--root-password SELECTOR]
|
||||||
|
- [--run SCRIPT] [--run-command 'CMD+ARGS'] [--scrub FILE]
|
||||||
|
- [--sm-attach SELECTOR] [--sm-register] [--sm-remove]
|
||||||
|
- [--sm-unregister] [--ssh-inject USER[:SELECTOR]]
|
||||||
|
- [--tar-in TARFILE:REMOTEDIR] [--timezone TIMEZONE] [--touch FILE]
|
||||||
|
- [--truncate FILE] [--truncate-recursive PATH]
|
||||||
|
- [--uninstall PKG,PKG..] [--update] [--upload FILE:DEST]
|
||||||
|
- [--write FILE:CONTENT] [--no-logfile]
|
||||||
|
+ [--hostname HOSTNAME]
|
||||||
|
+ [--inject-qemu-ga METHOD] [--inject-virtio-win METHOD]
|
||||||
|
+ [--install PKG,PKG..] [--link TARGET:LINK[:LINK..]] [--mkdir DIR]
|
||||||
|
+ [--move SOURCE:DEST] [--password USER:SELECTOR]
|
||||||
|
+ [--root-password SELECTOR] [--run SCRIPT]
|
||||||
|
+ [--run-command 'CMD+ARGS'] [--scrub FILE] [--sm-attach SELECTOR]
|
||||||
|
+ [--sm-register] [--sm-remove] [--sm-unregister]
|
||||||
|
+ [--ssh-inject USER[:SELECTOR]] [--tar-in TARFILE:REMOTEDIR]
|
||||||
|
+ [--timezone TIMEZONE] [--touch FILE] [--truncate FILE]
|
||||||
|
+ [--truncate-recursive PATH] [--uninstall PKG,PKG..] [--update]
|
||||||
|
+ [--upload FILE:DEST] [--write FILE:CONTENT] [--no-logfile]
|
||||||
|
[--password-crypto md5|sha256|sha512] [--no-selinux-relabel]
|
||||||
|
[--selinux-relabel] [--sm-credentials SELECTOR]
|
||||||
|
diff --git a/common/mlcustomize/customize_cmdline.ml b/common/mlcustomize/customize_cmdline.ml
|
||||||
|
index 48ee33445..c4d6a77d5 100644
|
||||||
|
--- a/common/mlcustomize/customize_cmdline.ml
|
||||||
|
+++ b/common/mlcustomize/customize_cmdline.ml
|
||||||
|
@@ -61,6 +61,8 @@ and op = [
|
||||||
|
(* --firstboot-install PKG,PKG.. *)
|
||||||
|
| `Hostname of string
|
||||||
|
(* --hostname HOSTNAME *)
|
||||||
|
+ | `InjectBalloonServer of string
|
||||||
|
+ (* --inject-blnsvr METHOD *)
|
||||||
|
| `InjectQemuGA of string
|
||||||
|
(* --inject-qemu-ga METHOD *)
|
||||||
|
| `InjectVirtioWin of string
|
||||||
|
diff --git a/common/mlcustomize/customize_cmdline.mli b/common/mlcustomize/customize_cmdline.mli
|
||||||
|
index 51a156eae..ee62961a1 100644
|
||||||
|
--- a/common/mlcustomize/customize_cmdline.mli
|
||||||
|
+++ b/common/mlcustomize/customize_cmdline.mli
|
||||||
|
@@ -53,6 +53,8 @@ and op = [
|
||||||
|
(* --firstboot-install PKG,PKG.. *)
|
||||||
|
| `Hostname of string
|
||||||
|
(* --hostname HOSTNAME *)
|
||||||
|
+ | `InjectBalloonServer of string
|
||||||
|
+ (* --inject-blnsvr METHOD *)
|
||||||
|
| `InjectQemuGA of string
|
||||||
|
(* --inject-qemu-ga METHOD *)
|
||||||
|
| `InjectVirtioWin of string
|
||||||
diff --git a/common/mlcustomize/firstboot.ml b/common/mlcustomize/firstboot.ml
|
diff --git a/common/mlcustomize/firstboot.ml b/common/mlcustomize/firstboot.ml
|
||||||
index 5dc012340..3bbba714d 100644
|
index 5dc012340..52e76401e 100644
|
||||||
--- a/common/mlcustomize/firstboot.ml
|
--- a/common/mlcustomize/firstboot.ml
|
||||||
+++ b/common/mlcustomize/firstboot.ml
|
+++ b/common/mlcustomize/firstboot.ml
|
||||||
@@ -239,7 +239,22 @@ WantedBy=%s
|
@@ -239,7 +239,22 @@ WantedBy=%s
|
||||||
@ -75,7 +142,43 @@ index 5dc012340..3bbba714d 100644
|
|||||||
g#mkdir_p (firstboot_dir // "scripts");
|
g#mkdir_p (firstboot_dir // "scripts");
|
||||||
|
|
||||||
(* Copy pvvxsvc or rhsrvany to the guest. *)
|
(* Copy pvvxsvc or rhsrvany to the guest. *)
|
||||||
@@ -339,11 +341,25 @@ echo uninstalling firstboot service
|
@@ -276,6 +278,9 @@ module Windows = struct
|
||||||
|
(* Write a firstboot.bat control script which just runs the other
|
||||||
|
* scripts in the directory. Note we need to use CRLF line endings
|
||||||
|
* in this script.
|
||||||
|
+ *
|
||||||
|
+ * XXX It would be better to use powershell here. For some ideas see
|
||||||
|
+ * https://github.com/HCK-CI/HLK-Setup-Scripts/
|
||||||
|
*)
|
||||||
|
let firstboot_script = sprintf "\
|
||||||
|
@echo off
|
||||||
|
@@ -297,6 +302,7 @@ if not exist \"%%scripts_done%%\" (
|
||||||
|
mkdir \"%%scripts_done%%\"
|
||||||
|
)
|
||||||
|
|
||||||
|
+:: Pick the next script to run.
|
||||||
|
for %%%%f in (\"%%scripts%%\"\\*.bat) do (
|
||||||
|
echo running \"%%%%f\"
|
||||||
|
move \"%%%%f\" \"%%scripts_done%%\"
|
||||||
|
@@ -305,8 +311,17 @@ for %%%%f in (\"%%scripts%%\"\\*.bat) do (
|
||||||
|
set elvl=!errorlevel!
|
||||||
|
echo .... exit code !elvl!
|
||||||
|
popd
|
||||||
|
+
|
||||||
|
+ :: Reboot the computer. This is necessary to free any locked
|
||||||
|
+ :: files which may prevent later scripts from running.
|
||||||
|
+ shutdown /r /t 0 /y
|
||||||
|
+
|
||||||
|
+ :: Exit the script (in case shutdown returns before rebooting).
|
||||||
|
+ :: On next boot, the whole firstboot service will be called again.
|
||||||
|
+ exit /b
|
||||||
|
)
|
||||||
|
|
||||||
|
+:: Fallthrough here if there are no scripts.
|
||||||
|
echo uninstalling firstboot service
|
||||||
|
\"%%firstboot%%\\%s\" -s firstboot uninstall
|
||||||
|
" firstboot_dir_win srvany in
|
||||||
|
@@ -339,11 +354,25 @@ echo uninstalling firstboot service
|
||||||
"PWD", REG_SZ firstboot_dir_win ];
|
"PWD", REG_SZ firstboot_dir_win ];
|
||||||
] in
|
] in
|
||||||
reg_import reg regedits
|
reg_import reg regedits
|
||||||
@ -104,7 +207,7 @@ index 5dc012340..3bbba714d 100644
|
|||||||
let script_count = ref 0
|
let script_count = ref 0
|
||||||
|
|
||||||
let add_firstboot_script (g : Guestfs.guestfs) root ?(prio = 5000) name
|
let add_firstboot_script (g : Guestfs.guestfs) root ?(prio = 5000) name
|
||||||
@@ -363,7 +379,8 @@ let add_firstboot_script (g : Guestfs.guestfs) root ?(prio = 5000) name
|
@@ -363,7 +392,8 @@ let add_firstboot_script (g : Guestfs.guestfs) root ?(prio = 5000) name
|
||||||
g#chmod 0o755 filename
|
g#chmod 0o755 filename
|
||||||
|
|
||||||
| "windows", _ ->
|
| "windows", _ ->
|
||||||
@ -114,7 +217,7 @@ index 5dc012340..3bbba714d 100644
|
|||||||
let filename = firstboot_dir // "scripts" // filename ^ ".bat" in
|
let filename = firstboot_dir // "scripts" // filename ^ ".bat" in
|
||||||
g#write filename (String.unix2dos content)
|
g#write filename (String.unix2dos content)
|
||||||
|
|
||||||
@@ -382,21 +399,18 @@ let add_firstboot_powershell g root ?prio name code =
|
@@ -382,21 +412,18 @@ let add_firstboot_powershell g root ?prio name code =
|
||||||
*)
|
*)
|
||||||
assert (g#inspect_get_type root = "windows");
|
assert (g#inspect_get_type root = "windows");
|
||||||
|
|
||||||
@ -176,10 +279,19 @@ index 8231af658..34ff06901 100644
|
|||||||
string -> unit
|
string -> unit
|
||||||
(** [add_firstboot_script g root prio name content] adds a firstboot
|
(** [add_firstboot_script g root prio name content] adds a firstboot
|
||||||
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
|
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
|
||||||
index 4e0ed0e0e..afec1e456 100644
|
index 2a30b2008..afec1e456 100644
|
||||||
--- a/common/mlcustomize/inject_virtio_win.ml
|
--- a/common/mlcustomize/inject_virtio_win.ml
|
||||||
+++ b/common/mlcustomize/inject_virtio_win.ml
|
+++ b/common/mlcustomize/inject_virtio_win.ml
|
||||||
@@ -263,14 +263,28 @@ let rec inject_virtio_win_drivers ({ g } as t) reg =
|
@@ -24,6 +24,8 @@ open Common_gettext.Gettext
|
||||||
|
|
||||||
|
open Regedit
|
||||||
|
|
||||||
|
+let re_blnsvr = PCRE.compile ~caseless:true "\\bblnsvr\\.exe$"
|
||||||
|
+
|
||||||
|
type t = {
|
||||||
|
g : Guestfs.guestfs; (** guestfs handle *)
|
||||||
|
|
||||||
|
@@ -261,12 +263,38 @@ let rec inject_virtio_win_drivers ({ g } as t) reg =
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -199,8 +311,6 @@ index 4e0ed0e0e..afec1e456 100644
|
|||||||
+ configure_qemu_ga t tempdir_win msi_files;
|
+ configure_qemu_ga t tempdir_win msi_files;
|
||||||
msi_files <> [] (* return true if we found some qemu-ga MSI files *)
|
msi_files <> [] (* return true if we found some qemu-ga MSI files *)
|
||||||
|
|
||||||
-and inject_blnsvr t =
|
|
||||||
- let files = copy_blnsvr t in
|
|
||||||
+and inject_blnsvr ({ g; root } as t) =
|
+and inject_blnsvr ({ g; root } as t) =
|
||||||
+ (* Copy the files to the guest. *)
|
+ (* Copy the files to the guest. *)
|
||||||
+ let dir, dir_win = Firstboot.firstboot_dir g root in
|
+ let dir, dir_win = Firstboot.firstboot_dir g root in
|
||||||
@ -210,19 +320,20 @@ index 4e0ed0e0e..afec1e456 100644
|
|||||||
+ g#mkdir_p tempdir;
|
+ g#mkdir_p tempdir;
|
||||||
+
|
+
|
||||||
+ let files = copy_blnsvr t tempdir in
|
+ let files = copy_blnsvr t tempdir in
|
||||||
match files with
|
+ match files with
|
||||||
| [] -> false (* Didn't find or install anything. *)
|
+ | [] -> false (* Didn't find or install anything. *)
|
||||||
|
+
|
||||||
@@ -278,7 +292,7 @@ and inject_blnsvr t =
|
+ (* We usually find blnsvr.exe in two locations (drivers/by-os and
|
||||||
* drivers/by-driver). Pick the first.
|
+ * drivers/by-driver). Pick the first.
|
||||||
*)
|
+ *)
|
||||||
| blnsvr :: _ ->
|
+ | blnsvr :: _ ->
|
||||||
- configure_blnsvr t blnsvr;
|
|
||||||
+ configure_blnsvr t tempdir_win blnsvr;
|
+ configure_blnsvr t tempdir_win blnsvr;
|
||||||
true
|
+ true
|
||||||
|
+
|
||||||
and add_guestor_to_registry t ((g, root) as reg) drv_name drv_pciid =
|
and add_guestor_to_registry t ((g, root) as reg) drv_name drv_pciid =
|
||||||
@@ -360,13 +374,13 @@ and copy_drivers t driverdir =
|
let ddb_node = g#hivex_node_get_child root "DriverDatabase" in
|
||||||
|
|
||||||
|
@@ -346,8 +374,13 @@ and copy_drivers t driverdir =
|
||||||
(fun () ->
|
(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."))
|
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."))
|
||||||
|
|
||||||
@ -230,17 +341,26 @@ index 4e0ed0e0e..afec1e456 100644
|
|||||||
- copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_qemu_ga t)
|
- copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_qemu_ga t)
|
||||||
+and copy_qemu_ga t tempdir =
|
+and copy_qemu_ga t tempdir =
|
||||||
+ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_qemu_ga t)
|
+ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_qemu_ga t)
|
||||||
(fun () ->
|
+ (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."))
|
+ error (f_"root directory ‘/’ is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log."))
|
||||||
|
+
|
||||||
-and copy_blnsvr t =
|
|
||||||
- copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_blnsvr t)
|
|
||||||
+and copy_blnsvr t tempdir =
|
+and copy_blnsvr t tempdir =
|
||||||
+ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_blnsvr t)
|
+ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_blnsvr t)
|
||||||
(fun () ->
|
(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."))
|
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."))
|
||||||
|
|
||||||
@@ -575,44 +589,35 @@ and copy_from_libosinfo { g; i_osinfo; i_arch } destdir =
|
@@ -513,6 +546,10 @@ and virtio_iso_path_matches_qemu_ga t path =
|
||||||
|
| ("x86_64", "rhev-qga64.msi") -> true
|
||||||
|
| _ -> false
|
||||||
|
|
||||||
|
+(* Find blnsvr for the current Windows version. *)
|
||||||
|
+and virtio_iso_path_matches_blnsvr t path =
|
||||||
|
+ virtio_iso_path_matches_guest_os t path && PCRE.matches re_blnsvr path
|
||||||
|
+
|
||||||
|
(* Look up in libosinfo for the OS, and copy all the locally
|
||||||
|
* available files specified as drivers for that OS to the [destdir].
|
||||||
|
*
|
||||||
|
@@ -552,37 +589,35 @@ and copy_from_libosinfo { g; i_osinfo; i_arch } destdir =
|
||||||
) driver.Libosinfo.files
|
) driver.Libosinfo.files
|
||||||
with Not_found -> []
|
with Not_found -> []
|
||||||
|
|
||||||
@ -301,16 +421,28 @@ index 4e0ed0e0e..afec1e456 100644
|
|||||||
- Firstboot.add_firstboot_powershell t.g t.root
|
- Firstboot.add_firstboot_powershell t.g t.root
|
||||||
- (sprintf "install-%s.ps1" msi_path) !psh_script;
|
- (sprintf "install-%s.ps1" msi_path) !psh_script;
|
||||||
- ) files
|
- ) files
|
||||||
-
|
|
||||||
-and configure_blnsvr t blnsvr =
|
|
||||||
+and configure_blnsvr t tempdir_win blnsvr =
|
+and configure_blnsvr t tempdir_win blnsvr =
|
||||||
let cmd = sprintf "\
|
+ let cmd = sprintf "\
|
||||||
@echo off\n\
|
+ @echo off\n\
|
||||||
echo Installing %s\n\
|
+ echo Installing %s\n\
|
||||||
- c:\\%s -i\n" blnsvr blnsvr in
|
|
||||||
- Firstboot.add_firstboot_script t.g t.root (sprintf "install-%s" blnsvr) cmd
|
|
||||||
+ \"%s\\%s\" -i\n" blnsvr tempdir_win blnsvr in
|
+ \"%s\\%s\" -i\n" blnsvr tempdir_win blnsvr in
|
||||||
+ Firstboot.add_firstboot_script t.g t.root "install-blnsvr" cmd
|
+ Firstboot.add_firstboot_script t.g t.root "install-blnsvr" cmd
|
||||||
|
diff --git a/common/mlcustomize/inject_virtio_win.mli b/common/mlcustomize/inject_virtio_win.mli
|
||||||
|
index d14f04973..d273c4dd3 100644
|
||||||
|
--- a/common/mlcustomize/inject_virtio_win.mli
|
||||||
|
+++ b/common/mlcustomize/inject_virtio_win.mli
|
||||||
|
@@ -93,3 +93,11 @@ val inject_qemu_ga : t -> bool
|
||||||
|
the MSI(s).
|
||||||
|
|
||||||
|
Returns [true] iff we were able to inject qemu-ga. *)
|
||||||
|
+
|
||||||
|
+val inject_blnsvr : t -> bool
|
||||||
|
+(** Inject the Balloon Server ([blnsvr.exe]) into a Windows guest.
|
||||||
|
+
|
||||||
|
+ A firstboot script is also injected which should install
|
||||||
|
+ the server by running [blnsvr -i].
|
||||||
|
+
|
||||||
|
+ Returns [true] iff we were able to inject the Balloon Server. *)
|
||||||
diff --git a/common/mldrivers/linux_kernels.ml b/common/mldrivers/linux_kernels.ml
|
diff --git a/common/mldrivers/linux_kernels.ml b/common/mldrivers/linux_kernels.ml
|
||||||
index 23ff76a55..e0b6b8a00 100644
|
index 23ff76a55..e0b6b8a00 100644
|
||||||
--- a/common/mldrivers/linux_kernels.ml
|
--- a/common/mldrivers/linux_kernels.ml
|
||||||
@ -342,3 +474,63 @@ index 23ff76a55..e0b6b8a00 100644
|
|||||||
List.iter (print_kernel_info stderr "\t") bootloader_kernels;
|
List.iter (print_kernel_info stderr "\t") bootloader_kernels;
|
||||||
flush stderr
|
flush stderr
|
||||||
);
|
);
|
||||||
|
diff --git a/common/options/uri.c b/common/options/uri.c
|
||||||
|
index 84d393c1e..9180d6a27 100644
|
||||||
|
--- a/common/options/uri.c
|
||||||
|
+++ b/common/options/uri.c
|
||||||
|
@@ -99,7 +99,7 @@ is_uri (const char *arg)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
for (p--; p >= arg; p--) {
|
||||||
|
- if (!c_islower (*p))
|
||||||
|
+ if (! (c_islower (*p) || *p == '+'))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -148,7 +148,10 @@ parse (const char *arg, char **path_ret, char **protocol_ret,
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
- *protocol_ret = strdup (uri->scheme);
|
||||||
|
+ if (STREQ (uri->scheme, "nbd+unix"))
|
||||||
|
+ *protocol_ret = strdup ("nbd");
|
||||||
|
+ else
|
||||||
|
+ *protocol_ret = strdup (uri->scheme);
|
||||||
|
if (*protocol_ret == NULL) {
|
||||||
|
perror ("strdup: protocol");
|
||||||
|
return -1;
|
||||||
|
@@ -194,7 +197,7 @@ parse (const char *arg, char **path_ret, char **protocol_ret,
|
||||||
|
if (path && path[0] == '/' &&
|
||||||
|
(STREQ (uri->scheme, "gluster") ||
|
||||||
|
STREQ (uri->scheme, "iscsi") ||
|
||||||
|
- STREQ (uri->scheme, "nbd") ||
|
||||||
|
+ STRPREFIX (uri->scheme, "nbd") ||
|
||||||
|
STREQ (uri->scheme, "rbd") ||
|
||||||
|
STREQ (uri->scheme, "sheepdog")))
|
||||||
|
path++;
|
||||||
|
diff --git a/common/progress/progress.c b/common/progress/progress.c
|
||||||
|
index e4b30663f..5848abd70 100644
|
||||||
|
--- a/common/progress/progress.c
|
||||||
|
+++ b/common/progress/progress.c
|
||||||
|
@@ -123,6 +123,7 @@ progress_bar_init (unsigned flags)
|
||||||
|
bar->machine_readable = 1;
|
||||||
|
bar->utf8_mode = 0;
|
||||||
|
bar->have_terminfo = 0;
|
||||||
|
+ bar->fp = NULL;
|
||||||
|
} else {
|
||||||
|
bar->machine_readable = 0;
|
||||||
|
|
||||||
|
diff --git a/customize/customize_run.ml b/customize/customize_run.ml
|
||||||
|
index 1314d6e30..afced8c84 100644
|
||||||
|
--- a/customize/customize_run.ml
|
||||||
|
+++ b/customize/customize_run.ml
|
||||||
|
@@ -216,6 +216,9 @@ let run (g : G.guestfs) root (ops : ops) =
|
||||||
|
if not (Hostname.set_hostname g root hostname) then
|
||||||
|
warning (f_"hostname could not be set for this type of guest")
|
||||||
|
|
||||||
|
+ | `InjectBalloonServer _ ->
|
||||||
|
+ error "injecting the balloon server is not supported in RHEL 9.4, use RHEL 9.5 or above"
|
||||||
|
+
|
||||||
|
| `InjectQemuGA meth ->
|
||||||
|
(match get_virtio_win_handle "--inject-qemu-ga" meth with
|
||||||
|
| None -> ()
|
@ -1,47 +0,0 @@
|
|||||||
From 76080541ae09c6242e0a162009c5faec3ba94b41 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Thu, 29 Feb 2024 21:27:47 +0000
|
|
||||||
Subject: [PATCH] inspector/inspector.c: Remove extra cases covered by default
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
In GCC 14:
|
|
||||||
|
|
||||||
inspector.c: In function ‘do_xpath’:
|
|
||||||
inspector.c:770:3: error: case value ‘5’ not in enumerated type ‘xmlXPathObjectType’ [-Werror=switch]
|
|
||||||
770 | case XPATH_POINT:
|
|
||||||
| ^~~~
|
|
||||||
inspector.c:771:3: error: case value ‘6’ not in enumerated type ‘xmlXPathObjectType’ [-Werror=switch]
|
|
||||||
771 | case XPATH_RANGE:
|
|
||||||
| ^~~~
|
|
||||||
inspector.c:772:3: error: case value ‘7’ not in enumerated type ‘xmlXPathObjectType’ [-Werror=switch]
|
|
||||||
772 | case XPATH_LOCATIONSET:
|
|
||||||
| ^~~~
|
|
||||||
|
|
||||||
We already have a default case here, remove the other cases.
|
|
||||||
|
|
||||||
(cherry picked from commit 9d2ac9c9b48bf34f5fc3485303143302ead4cb4f)
|
|
||||||
---
|
|
||||||
inspector/inspector.c | 8 --------
|
|
||||||
1 file changed, 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/inspector/inspector.c b/inspector/inspector.c
|
|
||||||
index 73357c7d7..01abfae0c 100644
|
|
||||||
--- a/inspector/inspector.c
|
|
||||||
+++ b/inspector/inspector.c
|
|
||||||
@@ -764,14 +764,6 @@ do_xpath (const char *query)
|
|
||||||
printf ("\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
- case XPATH_UNDEFINED: /* grrrrr ... switch-enum is a useless warning */
|
|
||||||
- case XPATH_BOOLEAN:
|
|
||||||
- case XPATH_NUMBER:
|
|
||||||
- case XPATH_POINT:
|
|
||||||
- case XPATH_RANGE:
|
|
||||||
- case XPATH_LOCATIONSET:
|
|
||||||
- case XPATH_USERS:
|
|
||||||
- case XPATH_XSLT_TREE:
|
|
||||||
default:
|
|
||||||
r = (char *) xmlXPathCastToString (xpathObj);
|
|
||||||
printf ("%s\n", r);
|
|
@ -1,42 +0,0 @@
|
|||||||
From dbc179ab026897be96651e7f9ca6026a3ebf540d Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Thu, 29 Feb 2024 21:20:59 +0000
|
|
||||||
Subject: [PATCH] m4/guestfs-c.m4: Re-add ./configure --enable-werror
|
|
||||||
|
|
||||||
Somewhere during removal of gnulib and splitting guestfs-tools from
|
|
||||||
libguestfs, this option was lost. Re-add it simply by copying the
|
|
||||||
configure fragment over from libguestfs.
|
|
||||||
|
|
||||||
(cherry picked from commit 42426992a292b45611b00fcff42160854db09922)
|
|
||||||
---
|
|
||||||
m4/guestfs-c.m4 | 17 +++++++++++++++++
|
|
||||||
1 file changed, 17 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/m4/guestfs-c.m4 b/m4/guestfs-c.m4
|
|
||||||
index bc7e3b2aa..67004d0a1 100644
|
|
||||||
--- a/m4/guestfs-c.m4
|
|
||||||
+++ b/m4/guestfs-c.m4
|
|
||||||
@@ -29,6 +29,23 @@ test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant])
|
|
||||||
|
|
||||||
AM_PROG_CC_C_O
|
|
||||||
|
|
||||||
+AC_ARG_ENABLE([werror],
|
|
||||||
+ [AS_HELP_STRING([--enable-werror],
|
|
||||||
+ [turn on lots of GCC warnings (for developers)])],
|
|
||||||
+ [case $enableval in
|
|
||||||
+ yes|no) ;;
|
|
||||||
+ *) AC_MSG_ERROR([bad value $enableval for werror option]) ;;
|
|
||||||
+ esac
|
|
||||||
+ gcc_warnings=$enableval],
|
|
||||||
+ [gcc_warnings=no]
|
|
||||||
+)
|
|
||||||
+WARN_CFLAGS="-Wall"
|
|
||||||
+AC_SUBST([WARN_CFLAGS])
|
|
||||||
+if test "x$gcc_warnings" = "xyes"; then
|
|
||||||
+ WERROR_CFLAGS="-Werror"
|
|
||||||
+fi
|
|
||||||
+AC_SUBST([WERROR_CFLAGS])
|
|
||||||
+
|
|
||||||
# Provide a global place to set CFLAGS. (Note that setting AM_CFLAGS
|
|
||||||
# is no use because it doesn't override target_CFLAGS).
|
|
||||||
#---
|
|
@ -1,43 +0,0 @@
|
|||||||
From 51b0bf74b249ac6646b7e083a678553fc40d44d7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Thu, 7 Mar 2024 12:00:45 +0000
|
|
||||||
Subject: [PATCH] make-fs: Use -S option with -z
|
|
||||||
|
|
||||||
Basically the file -z option is broken for distributions that enable
|
|
||||||
seccomp support in the 'file' command. Turn off seccomp when we know
|
|
||||||
we'll be using -z.
|
|
||||||
|
|
||||||
We hit this before in the libguestfs daemon:
|
|
||||||
https://github.com/libguestfs/libguestfs/issues/100
|
|
||||||
|
|
||||||
It was reported upstream but the fix was rejected:
|
|
||||||
https://bugs.astron.com/view.php?id=406
|
|
||||||
|
|
||||||
See also libguestfs commit 23986d3c4f4d1f9cbac44cc743d3e6af721e4237
|
|
||||||
("file: Use -S option with -z").
|
|
||||||
|
|
||||||
Note this requires file > 5.32. We could make it work for earlier
|
|
||||||
versions of file with some extra work:
|
|
||||||
https://listman.redhat.com/archives/libguestfs/2023-September/032613.html
|
|
||||||
& libguestfs commit c95d8c4cf64142bb707b42c32cf3e1ba3c4a5eb1
|
|
||||||
|
|
||||||
Reported-by: Jax Young
|
|
||||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2266201
|
|
||||||
(cherry picked from commit a706f6f55345b06578fd1ca4af531524dc2131fb)
|
|
||||||
---
|
|
||||||
make-fs/make-fs.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/make-fs/make-fs.c b/make-fs/make-fs.c
|
|
||||||
index 7837b61be..b8aebccfb 100644
|
|
||||||
--- a/make-fs/make-fs.c
|
|
||||||
+++ b/make-fs/make-fs.c
|
|
||||||
@@ -457,7 +457,7 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char **ifmt_rtn)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
argv[0] = "file";
|
|
||||||
- argv[1] = "-bsLz";
|
|
||||||
+ argv[1] = "-bsSLz";
|
|
||||||
argv[2] = input;
|
|
||||||
argv[3] = NULL;
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
From cc0ae4acabfc857f2bcee828e725a9d69dab5735 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Tue, 12 Mar 2024 09:42:30 +0000
|
|
||||||
Subject: [PATCH] sysprep: Make clearer that we do not support Windows
|
|
||||||
|
|
||||||
Thanks: Dan Kenigsberg
|
|
||||||
(cherry picked from commit 82c0fb1231c1a9250104cff278f1c67ab482fa4b)
|
|
||||||
---
|
|
||||||
sysprep/virt-sysprep.pod | 6 ++----
|
|
||||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/sysprep/virt-sysprep.pod b/sysprep/virt-sysprep.pod
|
|
||||||
index 0bcdc4dec..b48ac55c1 100644
|
|
||||||
--- a/sysprep/virt-sysprep.pod
|
|
||||||
+++ b/sysprep/virt-sysprep.pod
|
|
||||||
@@ -30,10 +30,8 @@ disk image to be writable as the non-root user running virt-sysprep.
|
|
||||||
|
|
||||||
"Sysprep" stands for "system preparation" tool. The name comes from
|
|
||||||
the Microsoft program F<sysprep.exe> which is used to unconfigure
|
|
||||||
-Windows machines in preparation for cloning them. Having said that,
|
|
||||||
-virt-sysprep does I<not> currently work on Microsoft Windows guests.
|
|
||||||
-We plan to support Windows sysprepping in a future version, and we
|
|
||||||
-already have code to do it.
|
|
||||||
+Windows machines in preparation for cloning them. (Virt-sysprep does
|
|
||||||
+not work on Microsoft Windows guests.)
|
|
||||||
|
|
||||||
=head1 OPTIONS
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
|||||||
From a103e367c4fd6bd073c324253833289f6a8ecc3a Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Tue, 12 Mar 2024 10:04:34 +0000
|
|
||||||
Subject: [PATCH] build: Use DISTCLEANFILES for a generated but few rarely
|
|
||||||
updated files
|
|
||||||
|
|
||||||
We rarely change the generated test scripts or the sysprep mli files,
|
|
||||||
so we only need to delete them in 'make distclean', not 'make clean'.
|
|
||||||
|
|
||||||
(cherry picked from commit 35e15c68ac9c4e5361e4cf8a49a60a4bc2708d89)
|
|
||||||
---
|
|
||||||
builder/Makefile.am | 4 +++-
|
|
||||||
customize/Makefile.am | 6 ++++--
|
|
||||||
sysprep/Makefile.am | 2 +-
|
|
||||||
3 files changed, 8 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/builder/Makefile.am b/builder/Makefile.am
|
|
||||||
index 42606aaf3..b474f0c9d 100644
|
|
||||||
--- a/builder/Makefile.am
|
|
||||||
+++ b/builder/Makefile.am
|
|
||||||
@@ -412,8 +412,10 @@ test-console-%.sh:
|
|
||||||
chmod 0755 $@-t
|
|
||||||
mv $@-t $@
|
|
||||||
|
|
||||||
+DISTCLEANFILES += \
|
|
||||||
+ $(console_test_scripts)
|
|
||||||
+
|
|
||||||
CLEANFILES += \
|
|
||||||
- $(console_test_scripts) \
|
|
||||||
console-*.img \
|
|
||||||
console-*.out
|
|
||||||
|
|
||||||
diff --git a/customize/Makefile.am b/customize/Makefile.am
|
|
||||||
index 3a974590f..461629062 100644
|
|
||||||
--- a/customize/Makefile.am
|
|
||||||
+++ b/customize/Makefile.am
|
|
||||||
@@ -285,9 +285,11 @@ test-settings-%.sh:
|
|
||||||
chmod 0755 $@-t
|
|
||||||
mv $@-t $@
|
|
||||||
|
|
||||||
+DISTCLEANFILES += \
|
|
||||||
+ $(password_test_scripts) \
|
|
||||||
+ $(settings_test_scripts)
|
|
||||||
+
|
|
||||||
CLEANFILES += \
|
|
||||||
- $(password_test_scripts) \
|
|
||||||
- $(settings_test_scripts) \
|
|
||||||
password-*.img \
|
|
||||||
password-*.log \
|
|
||||||
settings-*.img
|
|
||||||
diff --git a/sysprep/Makefile.am b/sysprep/Makefile.am
|
|
||||||
index 4b29d4e10..4b1c23ce0 100644
|
|
||||||
--- a/sysprep/Makefile.am
|
|
||||||
+++ b/sysprep/Makefile.am
|
|
||||||
@@ -179,7 +179,7 @@ virt_sysprep_LINK = \
|
|
||||||
$(OBJECTS) -o $@
|
|
||||||
|
|
||||||
# The sysprep_operation_*.mli files are all empty and autogenerated.
|
|
||||||
-CLEANFILES += \
|
|
||||||
+DISTCLEANFILES += \
|
|
||||||
$(patsubst %,sysprep_operation_%.mli,$(operations))
|
|
||||||
|
|
||||||
sysprep_operation_%.mli:
|
|
@ -1,28 +0,0 @@
|
|||||||
From 6ea88c2011b02a47058ba6d89af156983bd52a91 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jerry James <loganjerry@gmail.com>
|
|
||||||
Date: Fri, 12 Apr 2024 20:11:50 +0100
|
|
||||||
Subject: [PATCH] Fix bytecode compilation to output whole exe instead of using
|
|
||||||
-custom
|
|
||||||
|
|
||||||
These binaries are more resistant to being stripped.
|
|
||||||
|
|
||||||
Reported-by: Ilya Leoshkevich
|
|
||||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2274708
|
|
||||||
(cherry picked from commit c249fd5caca8f1eed439f83e2bb1af46c8a28a27)
|
|
||||||
---
|
|
||||||
subdir-rules.mk | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/subdir-rules.mk b/subdir-rules.mk
|
|
||||||
index 6bd62b653..051dc9d5a 100644
|
|
||||||
--- a/subdir-rules.mk
|
|
||||||
+++ b/subdir-rules.mk
|
|
||||||
@@ -49,7 +49,7 @@ LOG_DRIVER = env $(SHELL) $(top_srcdir)/build-aux/guestfs-test-driver
|
|
||||||
|
|
||||||
if !HAVE_OCAMLOPT
|
|
||||||
MLARCHIVE = cma
|
|
||||||
-LINK_CUSTOM_OCAMLC_ONLY = -custom
|
|
||||||
+LINK_CUSTOM_OCAMLC_ONLY = -output-complete-exe
|
|
||||||
BEST = c
|
|
||||||
else
|
|
||||||
MLARCHIVE = cmxa
|
|
@ -1,42 +0,0 @@
|
|||||||
From 8a942cdd8e6d1aa526844c428660d0bb4ca02770 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Thu, 4 Apr 2024 09:38:28 +0100
|
|
||||||
Subject: [PATCH] po-docs: Run po4a-translate and sed commands separately
|
|
||||||
|
|
||||||
I noticed that 1-byte translated POD files were being generated in the
|
|
||||||
output directory (po-docs/ja/). This seems to have happened because
|
|
||||||
po4a-translate was generating an error, but because we were
|
|
||||||
immediately pipeing the output into sed the error was suppressed.
|
|
||||||
|
|
||||||
By running them as two separate commands this cannot happen.
|
|
||||||
|
|
||||||
Fixes: commit bd896d68c06d7f66303bd77daa666367b0de5f3a
|
|
||||||
(cherry picked from libguestfs commit d755070346c0498672517c844d7ced52e9263197)
|
|
||||||
|
|
||||||
(cherry picked from commit 8c8da80adf8a9e3c350b010b5724a5ae7d9875b6)
|
|
||||||
---
|
|
||||||
po-docs/language.mk | 5 ++++-
|
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/po-docs/language.mk b/po-docs/language.mk
|
|
||||||
index b4e3544ca..ba2e36998 100644
|
|
||||||
--- a/po-docs/language.mk
|
|
||||||
+++ b/po-docs/language.mk
|
|
||||||
@@ -101,13 +101,16 @@ virt-sysprep.1: virt-sysprep.pod sysprep-extra-options.pod sysprep-operations.po
|
|
||||||
# Remove both.
|
|
||||||
# XXX Fix po4a so it doesn't do this.
|
|
||||||
%.pod: $(srcdir)/../$(LINGUA).po
|
|
||||||
+ rm -f $@ $@-t
|
|
||||||
$(guestfs_am_v_po4a_translate)$(PO4A_TRANSLATE) \
|
|
||||||
-f pod \
|
|
||||||
-M utf-8 -L utf-8 \
|
|
||||||
-k 0 \
|
|
||||||
-m $(top_srcdir)/$(shell grep -E '/$(basename $@)(\.|$$)' $(top_srcdir)/po-docs/podfiles) \
|
|
||||||
-p $< \
|
|
||||||
- | $(SED) '0,/^=encoding/d' > $@
|
|
||||||
+ -l $@-t
|
|
||||||
+ $(SED) '0,/^=encoding/d' < $@-t > $@
|
|
||||||
+ rm $@-t
|
|
||||||
|
|
||||||
# XXX Can automake do this properly?
|
|
||||||
install-data-hook:
|
|
@ -1,25 +0,0 @@
|
|||||||
From 80806f5438c769b71e92a7669db029f5f243cfce Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Fri, 12 Apr 2024 22:06:55 +0100
|
|
||||||
Subject: [PATCH] po-docs: Remove virt-dib from list of translated man pages
|
|
||||||
|
|
||||||
This page no longer exists.
|
|
||||||
|
|
||||||
Fixes: commit 57423d907270526ea664ff15601cce956353820e
|
|
||||||
(cherry picked from commit 2e797d3bb4c8a13305a948e3d87e4eabfd692e17)
|
|
||||||
---
|
|
||||||
po-docs/language.mk | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/po-docs/language.mk b/po-docs/language.mk
|
|
||||||
index ba2e36998..7328265e6 100644
|
|
||||||
--- a/po-docs/language.mk
|
|
||||||
+++ b/po-docs/language.mk
|
|
||||||
@@ -30,7 +30,6 @@ MANPAGES = \
|
|
||||||
virt-cat.1 \
|
|
||||||
virt-customize.1 \
|
|
||||||
virt-df.1 \
|
|
||||||
- virt-dib.1 \
|
|
||||||
virt-diff.1 \
|
|
||||||
virt-edit.1 \
|
|
||||||
virt-filesystems.1 \
|
|
@ -1,65 +0,0 @@
|
|||||||
From d0b1b1eaaebdff2cee004304e9d498cd2a720e23 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Wed, 24 Apr 2024 12:23:34 +0100
|
|
||||||
Subject: [PATCH] Update common submodule
|
|
||||||
|
|
||||||
In particular pick this:
|
|
||||||
|
|
||||||
commit 93a7f3af5c23ece6a8e092827ed5928a8973fd3c
|
|
||||||
Author: Richard W.M. Jones <rjones@redhat.com>
|
|
||||||
Date: Wed Apr 24 12:08:01 2024 +0100
|
|
||||||
|
|
||||||
options: Allow nbd+unix:// URIs
|
|
||||||
|
|
||||||
(cherry picked from commit 21a507d8aeb2d264863e1fbdfadc0ff44455ffb4)
|
|
||||||
---
|
|
||||||
common | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
Submodule common 54869c987..93a7f3af5:
|
|
||||||
diff --git a/common/options/uri.c b/common/options/uri.c
|
|
||||||
index 84d393c1e..9180d6a27 100644
|
|
||||||
--- a/common/options/uri.c
|
|
||||||
+++ b/common/options/uri.c
|
|
||||||
@@ -99,7 +99,7 @@ is_uri (const char *arg)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
for (p--; p >= arg; p--) {
|
|
||||||
- if (!c_islower (*p))
|
|
||||||
+ if (! (c_islower (*p) || *p == '+'))
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -148,7 +148,10 @@ parse (const char *arg, char **path_ret, char **protocol_ret,
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
- *protocol_ret = strdup (uri->scheme);
|
|
||||||
+ if (STREQ (uri->scheme, "nbd+unix"))
|
|
||||||
+ *protocol_ret = strdup ("nbd");
|
|
||||||
+ else
|
|
||||||
+ *protocol_ret = strdup (uri->scheme);
|
|
||||||
if (*protocol_ret == NULL) {
|
|
||||||
perror ("strdup: protocol");
|
|
||||||
return -1;
|
|
||||||
@@ -194,7 +197,7 @@ parse (const char *arg, char **path_ret, char **protocol_ret,
|
|
||||||
if (path && path[0] == '/' &&
|
|
||||||
(STREQ (uri->scheme, "gluster") ||
|
|
||||||
STREQ (uri->scheme, "iscsi") ||
|
|
||||||
- STREQ (uri->scheme, "nbd") ||
|
|
||||||
+ STRPREFIX (uri->scheme, "nbd") ||
|
|
||||||
STREQ (uri->scheme, "rbd") ||
|
|
||||||
STREQ (uri->scheme, "sheepdog")))
|
|
||||||
path++;
|
|
||||||
diff --git a/common/progress/progress.c b/common/progress/progress.c
|
|
||||||
index e4b30663f..5848abd70 100644
|
|
||||||
--- a/common/progress/progress.c
|
|
||||||
+++ b/common/progress/progress.c
|
|
||||||
@@ -123,6 +123,7 @@ progress_bar_init (unsigned flags)
|
|
||||||
bar->machine_readable = 1;
|
|
||||||
bar->utf8_mode = 0;
|
|
||||||
bar->have_terminfo = 0;
|
|
||||||
+ bar->fp = NULL;
|
|
||||||
} else {
|
|
||||||
bar->machine_readable = 0;
|
|
||||||
|
|
@ -1,222 +0,0 @@
|
|||||||
From d326f1080aafe32d47b49064099f2e9d7759b2a0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Thu, 16 May 2024 12:49:24 +0100
|
|
||||||
Subject: [PATCH] customize: Implement --inject-blnsvr operation
|
|
||||||
|
|
||||||
Also updates the common submodule with the generated changes from
|
|
||||||
libguestfs, and the implementation of Inject_virtio_win.inject_blnsvr.
|
|
||||||
|
|
||||||
(cherry picked from commit 80d258baa49214c8e59b91d6085595c9b989fc0d)
|
|
||||||
---
|
|
||||||
common | 2 +-
|
|
||||||
customize/customize_run.ml | 13 +++++++++++--
|
|
||||||
2 files changed, 12 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
Submodule common 93a7f3af5..830cbdcf4:
|
|
||||||
diff --git a/common/mlcustomize/customize-options.pod b/common/mlcustomize/customize-options.pod
|
|
||||||
index ff93630d8..b2ac57526 100644
|
|
||||||
--- a/common/mlcustomize/customize-options.pod
|
|
||||||
+++ b/common/mlcustomize/customize-options.pod
|
|
||||||
@@ -193,6 +193,18 @@ L<virt-builder(1)/INSTALLING PACKAGES>.
|
|
||||||
Set the hostname of the guest to C<HOSTNAME>. You can use a
|
|
||||||
dotted hostname.domainname (FQDN) if you want.
|
|
||||||
|
|
||||||
+=item B<--inject-blnsvr> METHOD
|
|
||||||
+
|
|
||||||
+Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.
|
|
||||||
+This operation also injects a firstboot script so that the Balloon
|
|
||||||
+Server is installed when the guest boots.
|
|
||||||
+
|
|
||||||
+The parameter is the same as used by the I<--inject-virtio-win> operation.
|
|
||||||
+
|
|
||||||
+Note that to do a full conversion of a Windows guest from a
|
|
||||||
+foreign hypervisor like VMware (which involves many other operations)
|
|
||||||
+you should use the L<virt-v2v(1)> tool instead of this.
|
|
||||||
+
|
|
||||||
=item B<--inject-qemu-ga> METHOD
|
|
||||||
|
|
||||||
Inject the QEMU Guest Agent into a Windows guest. The guest
|
|
||||||
diff --git a/common/mlcustomize/customize-synopsis.pod b/common/mlcustomize/customize-synopsis.pod
|
|
||||||
index bb0ce1255..957de8cf2 100644
|
|
||||||
--- a/common/mlcustomize/customize-synopsis.pod
|
|
||||||
+++ b/common/mlcustomize/customize-synopsis.pod
|
|
||||||
@@ -3,16 +3,16 @@
|
|
||||||
[--copy SOURCE:DEST] [--copy-in LOCALPATH:REMOTEDIR]
|
|
||||||
[--delete PATH] [--edit FILE:EXPR] [--firstboot SCRIPT]
|
|
||||||
[--firstboot-command 'CMD+ARGS'] [--firstboot-install PKG,PKG..]
|
|
||||||
- [--hostname HOSTNAME] [--inject-qemu-ga METHOD]
|
|
||||||
- [--inject-virtio-win METHOD] [--install PKG,PKG..]
|
|
||||||
- [--link TARGET:LINK[:LINK..]] [--mkdir DIR] [--move SOURCE:DEST]
|
|
||||||
- [--password USER:SELECTOR] [--root-password SELECTOR]
|
|
||||||
- [--run SCRIPT] [--run-command 'CMD+ARGS'] [--scrub FILE]
|
|
||||||
- [--sm-attach SELECTOR] [--sm-register] [--sm-remove]
|
|
||||||
- [--sm-unregister] [--ssh-inject USER[:SELECTOR]]
|
|
||||||
- [--tar-in TARFILE:REMOTEDIR] [--timezone TIMEZONE] [--touch FILE]
|
|
||||||
- [--truncate FILE] [--truncate-recursive PATH]
|
|
||||||
- [--uninstall PKG,PKG..] [--update] [--upload FILE:DEST]
|
|
||||||
- [--write FILE:CONTENT] [--no-logfile]
|
|
||||||
+ [--hostname HOSTNAME] [--inject-blnsvr METHOD]
|
|
||||||
+ [--inject-qemu-ga METHOD] [--inject-virtio-win METHOD]
|
|
||||||
+ [--install PKG,PKG..] [--link TARGET:LINK[:LINK..]] [--mkdir DIR]
|
|
||||||
+ [--move SOURCE:DEST] [--password USER:SELECTOR]
|
|
||||||
+ [--root-password SELECTOR] [--run SCRIPT]
|
|
||||||
+ [--run-command 'CMD+ARGS'] [--scrub FILE] [--sm-attach SELECTOR]
|
|
||||||
+ [--sm-register] [--sm-remove] [--sm-unregister]
|
|
||||||
+ [--ssh-inject USER[:SELECTOR]] [--tar-in TARFILE:REMOTEDIR]
|
|
||||||
+ [--timezone TIMEZONE] [--touch FILE] [--truncate FILE]
|
|
||||||
+ [--truncate-recursive PATH] [--uninstall PKG,PKG..] [--update]
|
|
||||||
+ [--upload FILE:DEST] [--write FILE:CONTENT] [--no-logfile]
|
|
||||||
[--password-crypto md5|sha256|sha512] [--no-selinux-relabel]
|
|
||||||
[--selinux-relabel] [--sm-credentials SELECTOR]
|
|
||||||
diff --git a/common/mlcustomize/customize_cmdline.ml b/common/mlcustomize/customize_cmdline.ml
|
|
||||||
index 48ee33445..c4d6a77d5 100644
|
|
||||||
--- a/common/mlcustomize/customize_cmdline.ml
|
|
||||||
+++ b/common/mlcustomize/customize_cmdline.ml
|
|
||||||
@@ -61,6 +61,8 @@ and op = [
|
|
||||||
(* --firstboot-install PKG,PKG.. *)
|
|
||||||
| `Hostname of string
|
|
||||||
(* --hostname HOSTNAME *)
|
|
||||||
+ | `InjectBalloonServer of string
|
|
||||||
+ (* --inject-blnsvr METHOD *)
|
|
||||||
| `InjectQemuGA of string
|
|
||||||
(* --inject-qemu-ga METHOD *)
|
|
||||||
| `InjectVirtioWin of string
|
|
||||||
@@ -286,6 +288,12 @@ let rec argspec () =
|
|
||||||
s_"Set the hostname"
|
|
||||||
),
|
|
||||||
Some "HOSTNAME", "Set the hostname of the guest to C<HOSTNAME>. You can use a\ndotted hostname.domainname (FQDN) if you want.";
|
|
||||||
+ (
|
|
||||||
+ [ L"inject-blnsvr" ],
|
|
||||||
+ Getopt.String (s_"METHOD", fun s -> List.push_front (`InjectBalloonServer s) ops),
|
|
||||||
+ s_"Inject the Balloon Server into a Windows guest"
|
|
||||||
+ ),
|
|
||||||
+ Some "METHOD", "Inject the Balloon Server (F<blnsvr.exe>) into a Windows guest.\nThis operation also injects a firstboot script so that the Balloon\nServer is installed when the guest boots.\n\nThe parameter is the same as used by the I<--inject-virtio-win> operation.\n\nNote that to do a full conversion of a Windows guest from a\nforeign hypervisor like VMware (which involves many other operations)\nyou should use the L<virt-v2v(1)> tool instead of this.";
|
|
||||||
(
|
|
||||||
[ L"inject-qemu-ga" ],
|
|
||||||
Getopt.String (s_"METHOD", fun s -> List.push_front (`InjectQemuGA s) ops),
|
|
||||||
diff --git a/common/mlcustomize/customize_cmdline.mli b/common/mlcustomize/customize_cmdline.mli
|
|
||||||
index 51a156eae..ee62961a1 100644
|
|
||||||
--- a/common/mlcustomize/customize_cmdline.mli
|
|
||||||
+++ b/common/mlcustomize/customize_cmdline.mli
|
|
||||||
@@ -53,6 +53,8 @@ and op = [
|
|
||||||
(* --firstboot-install PKG,PKG.. *)
|
|
||||||
| `Hostname of string
|
|
||||||
(* --hostname HOSTNAME *)
|
|
||||||
+ | `InjectBalloonServer of string
|
|
||||||
+ (* --inject-blnsvr METHOD *)
|
|
||||||
| `InjectQemuGA of string
|
|
||||||
(* --inject-qemu-ga METHOD *)
|
|
||||||
| `InjectVirtioWin of string
|
|
||||||
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
|
|
||||||
index 2a30b2008..4e0ed0e0e 100644
|
|
||||||
--- a/common/mlcustomize/inject_virtio_win.ml
|
|
||||||
+++ b/common/mlcustomize/inject_virtio_win.ml
|
|
||||||
@@ -24,6 +24,8 @@ open Common_gettext.Gettext
|
|
||||||
|
|
||||||
open Regedit
|
|
||||||
|
|
||||||
+let re_blnsvr = PCRE.compile ~caseless:true "\\bblnsvr\\.exe$"
|
|
||||||
+
|
|
||||||
type t = {
|
|
||||||
g : Guestfs.guestfs; (** guestfs handle *)
|
|
||||||
|
|
||||||
@@ -267,6 +269,18 @@ and inject_qemu_ga t =
|
|
||||||
configure_qemu_ga t msi_files;
|
|
||||||
msi_files <> [] (* return true if we found some qemu-ga MSI files *)
|
|
||||||
|
|
||||||
+and inject_blnsvr t =
|
|
||||||
+ let files = copy_blnsvr t in
|
|
||||||
+ match files with
|
|
||||||
+ | [] -> false (* Didn't find or install anything. *)
|
|
||||||
+
|
|
||||||
+ (* We usually find blnsvr.exe in two locations (drivers/by-os and
|
|
||||||
+ * drivers/by-driver). Pick the first.
|
|
||||||
+ *)
|
|
||||||
+ | blnsvr :: _ ->
|
|
||||||
+ configure_blnsvr t blnsvr;
|
|
||||||
+ true
|
|
||||||
+
|
|
||||||
and add_guestor_to_registry t ((g, root) as reg) drv_name drv_pciid =
|
|
||||||
let ddb_node = g#hivex_node_get_child root "DriverDatabase" in
|
|
||||||
|
|
||||||
@@ -351,6 +365,11 @@ and copy_qemu_ga t =
|
|
||||||
(fun () ->
|
|
||||||
error (f_"root directory ‘/’ is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log."))
|
|
||||||
|
|
||||||
+and copy_blnsvr t =
|
|
||||||
+ copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_blnsvr t)
|
|
||||||
+ (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].
|
|
||||||
@@ -513,6 +532,10 @@ and virtio_iso_path_matches_qemu_ga t path =
|
|
||||||
| ("x86_64", "rhev-qga64.msi") -> true
|
|
||||||
| _ -> false
|
|
||||||
|
|
||||||
+(* Find blnsvr for the current Windows version. *)
|
|
||||||
+and virtio_iso_path_matches_blnsvr t path =
|
|
||||||
+ virtio_iso_path_matches_guest_os t path && PCRE.matches re_blnsvr path
|
|
||||||
+
|
|
||||||
(* Look up in libosinfo for the OS, and copy all the locally
|
|
||||||
* available files specified as drivers for that OS to the [destdir].
|
|
||||||
*
|
|
||||||
@@ -586,3 +609,10 @@ and configure_qemu_ga t files =
|
|
||||||
Firstboot.add_firstboot_powershell t.g t.root
|
|
||||||
(sprintf "install-%s.ps1" msi_path) !psh_script;
|
|
||||||
) files
|
|
||||||
+
|
|
||||||
+and configure_blnsvr t blnsvr =
|
|
||||||
+ let cmd = sprintf "\
|
|
||||||
+ @echo off\n\
|
|
||||||
+ echo Installing %s\n\
|
|
||||||
+ c:\\%s -i\n" blnsvr blnsvr in
|
|
||||||
+ Firstboot.add_firstboot_script t.g t.root (sprintf "install-%s" blnsvr) cmd
|
|
||||||
diff --git a/common/mlcustomize/inject_virtio_win.mli b/common/mlcustomize/inject_virtio_win.mli
|
|
||||||
index d14f04973..d273c4dd3 100644
|
|
||||||
--- a/common/mlcustomize/inject_virtio_win.mli
|
|
||||||
+++ b/common/mlcustomize/inject_virtio_win.mli
|
|
||||||
@@ -93,3 +93,11 @@ val inject_qemu_ga : t -> bool
|
|
||||||
the MSI(s).
|
|
||||||
|
|
||||||
Returns [true] iff we were able to inject qemu-ga. *)
|
|
||||||
+
|
|
||||||
+val inject_blnsvr : t -> bool
|
|
||||||
+(** Inject the Balloon Server ([blnsvr.exe]) into a Windows guest.
|
|
||||||
+
|
|
||||||
+ A firstboot script is also injected which should install
|
|
||||||
+ the server by running [blnsvr -i].
|
|
||||||
+
|
|
||||||
+ Returns [true] iff we were able to inject the Balloon Server. *)
|
|
||||||
diff --git a/customize/customize_run.ml b/customize/customize_run.ml
|
|
||||||
index 1314d6e30..1d7c13eaf 100644
|
|
||||||
--- a/customize/customize_run.ml
|
|
||||||
+++ b/customize/customize_run.ml
|
|
||||||
@@ -113,8 +113,8 @@ let run (g : G.guestfs) root (ops : ops) =
|
|
||||||
Hashtbl.replace passwords user pw
|
|
||||||
in
|
|
||||||
|
|
||||||
- (* Helper function to convert --inject-qemu-ga/--inject-virtio-win
|
|
||||||
- * method parameter into a virtio-win handle.
|
|
||||||
+ (* Helper function to convert --inject-blnsvr/--inject-qemu-ga/
|
|
||||||
+ * --inject-virtio-win method parameter into a virtio-win handle.
|
|
||||||
*)
|
|
||||||
let get_virtio_win_handle op meth =
|
|
||||||
if g#inspect_get_type root <> "windows" then (
|
|
||||||
@@ -216,6 +216,15 @@ let run (g : G.guestfs) root (ops : ops) =
|
|
||||||
if not (Hostname.set_hostname g root hostname) then
|
|
||||||
warning (f_"hostname could not be set for this type of guest")
|
|
||||||
|
|
||||||
+ | `InjectBalloonServer meth ->
|
|
||||||
+ (match get_virtio_win_handle "--inject-blnsvr" meth with
|
|
||||||
+ | None -> ()
|
|
||||||
+ | Some t ->
|
|
||||||
+ if not (Inject_virtio_win.inject_blnsvr t) then
|
|
||||||
+ warning (f_"--inject-blnsvr: blnsvr.exe not found in \
|
|
||||||
+ virtio-win source that you specified")
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
| `InjectQemuGA meth ->
|
|
||||||
(match get_virtio_win_handle "--inject-qemu-ga" meth with
|
|
||||||
| None -> ()
|
|
@ -1,57 +0,0 @@
|
|||||||
From 924bf9e6b76fa6c910c1708a20e0716384fbbe07 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Sat, 10 Aug 2024 14:17:51 +0100
|
|
||||||
Subject: [PATCH] Update common submodule
|
|
||||||
|
|
||||||
Further refinements to Windows firstboot code.
|
|
||||||
|
|
||||||
Richard W.M. Jones (2):
|
|
||||||
mlcustomize: Add some comments to firstboot batch file
|
|
||||||
mlcustomize: Reboot Windows between each firstboot script
|
|
||||||
|
|
||||||
(cherry picked from commit d7719d6954f48c3a395da7486bcf55fbac66ea07)
|
|
||||||
---
|
|
||||||
common | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
Submodule common 7b84a370e..a78839676:
|
|
||||||
diff --git a/common/mlcustomize/firstboot.ml b/common/mlcustomize/firstboot.ml
|
|
||||||
index 3bbba714d..52e76401e 100644
|
|
||||||
--- a/common/mlcustomize/firstboot.ml
|
|
||||||
+++ b/common/mlcustomize/firstboot.ml
|
|
||||||
@@ -278,6 +278,9 @@ module Windows = struct
|
|
||||||
(* Write a firstboot.bat control script which just runs the other
|
|
||||||
* scripts in the directory. Note we need to use CRLF line endings
|
|
||||||
* in this script.
|
|
||||||
+ *
|
|
||||||
+ * XXX It would be better to use powershell here. For some ideas see
|
|
||||||
+ * https://github.com/HCK-CI/HLK-Setup-Scripts/
|
|
||||||
*)
|
|
||||||
let firstboot_script = sprintf "\
|
|
||||||
@echo off
|
|
||||||
@@ -299,6 +302,7 @@ if not exist \"%%scripts_done%%\" (
|
|
||||||
mkdir \"%%scripts_done%%\"
|
|
||||||
)
|
|
||||||
|
|
||||||
+:: Pick the next script to run.
|
|
||||||
for %%%%f in (\"%%scripts%%\"\\*.bat) do (
|
|
||||||
echo running \"%%%%f\"
|
|
||||||
move \"%%%%f\" \"%%scripts_done%%\"
|
|
||||||
@@ -307,8 +311,17 @@ for %%%%f in (\"%%scripts%%\"\\*.bat) do (
|
|
||||||
set elvl=!errorlevel!
|
|
||||||
echo .... exit code !elvl!
|
|
||||||
popd
|
|
||||||
+
|
|
||||||
+ :: Reboot the computer. This is necessary to free any locked
|
|
||||||
+ :: files which may prevent later scripts from running.
|
|
||||||
+ shutdown /r /t 0 /y
|
|
||||||
+
|
|
||||||
+ :: Exit the script (in case shutdown returns before rebooting).
|
|
||||||
+ :: On next boot, the whole firstboot service will be called again.
|
|
||||||
+ exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
+:: Fallthrough here if there are no scripts.
|
|
||||||
echo uninstalling firstboot service
|
|
||||||
\"%%firstboot%%\\%s\" -s firstboot uninstall
|
|
||||||
" firstboot_dir_win srvany in
|
|
2
SOURCES/copy-patches.sh
Executable file → Normal file
2
SOURCES/copy-patches.sh
Executable file → Normal file
@ -7,7 +7,7 @@ set -e
|
|||||||
# ./copy-patches.sh
|
# ./copy-patches.sh
|
||||||
|
|
||||||
project=guestfs-tools
|
project=guestfs-tools
|
||||||
rhel_version=9.5
|
rhel_version=9.4
|
||||||
|
|
||||||
# Check we're in the right directory.
|
# Check we're in the right directory.
|
||||||
if [ ! -f $project.spec ]; then
|
if [ ! -f $project.spec ]; then
|
||||||
|
@ -19,15 +19,11 @@
|
|||||||
Summary: Tools to access and modify virtual machine disk images
|
Summary: Tools to access and modify virtual machine disk images
|
||||||
Name: guestfs-tools
|
Name: guestfs-tools
|
||||||
Version: 1.51.6
|
Version: 1.51.6
|
||||||
Release: 5%{?dist}
|
Release: 3%{?dist}.alma.1.kvm
|
||||||
License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||||
|
|
||||||
# Build only for architectures that have a kernel
|
# Build only for architectures that have a kernel
|
||||||
ExclusiveArch: %{kernel_arches}
|
ExclusiveArch: %{kernel_arches}
|
||||||
%if 0%{?rhel}
|
|
||||||
# No qemu-kvm on POWER (RHBZ#1946532).
|
|
||||||
ExcludeArch: %{power64}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Source and patches.
|
# Source and patches.
|
||||||
URL: http://libguestfs.org/
|
URL: http://libguestfs.org/
|
||||||
@ -45,25 +41,14 @@ 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/rwmjones/guestfs-tools/commits/rhel-9.5
|
# https://github.com/rwmjones/guestfs-tools/commits/rhel-9.4
|
||||||
|
|
||||||
# Patches.
|
# Patches.
|
||||||
Patch0001: 0001-Update-common-submodule.patch
|
Patch0001: 0001-Update-common-submodule.patch
|
||||||
Patch0002: 0002-builder-Add-a-test-of-the-chown-parameter.patch
|
Patch0002: 0002-builder-Add-a-test-of-the-chown-parameter.patch
|
||||||
Patch0003: 0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch
|
Patch0003: 0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch
|
||||||
Patch0004: 0004-RHEL-builder-Disable-opensuse-repository.patch
|
Patch0004: 0004-RHEL-builder-Disable-opensuse-repository.patch
|
||||||
Patch0005: 0005-inspector-inspector.c-Remove-extra-cases-covered-by-.patch
|
Patch0005: 0005-Update-common-submodule.patch
|
||||||
Patch0006: 0006-m4-guestfs-c.m4-Re-add-.-configure-enable-werror.patch
|
|
||||||
Patch0007: 0007-make-fs-Use-S-option-with-z.patch
|
|
||||||
Patch0008: 0008-sysprep-Make-clearer-that-we-do-not-support-Windows.patch
|
|
||||||
Patch0009: 0009-build-Use-DISTCLEANFILES-for-a-generated-but-few-rar.patch
|
|
||||||
Patch0010: 0010-Fix-bytecode-compilation-to-output-whole-exe-instead.patch
|
|
||||||
Patch0011: 0011-po-docs-Run-po4a-translate-and-sed-commands-separate.patch
|
|
||||||
Patch0012: 0012-po-docs-Remove-virt-dib-from-list-of-translated-man-.patch
|
|
||||||
Patch0013: 0013-Update-common-submodule.patch
|
|
||||||
Patch0014: 0014-customize-Implement-inject-blnsvr-operation.patch
|
|
||||||
Patch0015: 0015-Update-common-submodule.patch
|
|
||||||
Patch0016: 0016-Update-common-submodule.patch
|
|
||||||
|
|
||||||
%if 0%{patches_touch_autotools}
|
%if 0%{patches_touch_autotools}
|
||||||
BuildRequires: autoconf, automake, libtool, gettext-devel
|
BuildRequires: autoconf, automake, libtool, gettext-devel
|
||||||
@ -422,15 +407,9 @@ end
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Aug 27 2024 Richard W.M. Jones <rjones@redhat.com> - 1.51.6-5
|
* Tue Aug 27 2024 Richard W.M. Jones <rjones@redhat.com> - 1.51.6-3
|
||||||
- Reboot Windows between each firstboot script to improve reliability
|
- Reboot Windows between each firstboot script to improve reliability
|
||||||
resolves: RHEL-55759
|
resolves: RHEL-55824
|
||||||
|
|
||||||
* Thu May 16 2024 Richard W.M. Jones <rjones@redhat.com> - 1.51.6-4
|
|
||||||
- Add support for nbd+unix:// URIs
|
|
||||||
resolves: RHEL-33956
|
|
||||||
- customize: Implement --inject-blnsvr operation
|
|
||||||
resolves: RHEL-36634
|
|
||||||
|
|
||||||
* Fri Jan 19 2024 Richard W.M. Jones <rjones@redhat.com> - 1.51.6-2
|
* Fri Jan 19 2024 Richard W.M. Jones <rjones@redhat.com> - 1.51.6-2
|
||||||
- Rebase to guestfs-tools 1.51.6
|
- Rebase to guestfs-tools 1.51.6
|
||||||
@ -452,6 +431,9 @@ end
|
|||||||
- Fix virt-drivers inspection of RHEL 9.2 guests
|
- Fix virt-drivers inspection of RHEL 9.2 guests
|
||||||
resolves: rhbz#2184963
|
resolves: rhbz#2184963
|
||||||
|
|
||||||
|
* Mon Dec 19 2022 Eduard Abdullin <eabdullin@almalinux.org> - 1.48.2-5.alma
|
||||||
|
- Enable for ppc64le
|
||||||
|
|
||||||
* Thu Nov 24 2022 Richard W.M. Jones <rjones@redhat.com> - 1.48.2-8
|
* Thu Nov 24 2022 Richard W.M. Jones <rjones@redhat.com> - 1.48.2-8
|
||||||
- Support Rocky Linux in virt-customize
|
- Support Rocky Linux in virt-customize
|
||||||
resolves: rhbz#2133443
|
resolves: rhbz#2133443
|
||||||
|
Loading…
Reference in New Issue
Block a user