From c5fbf4cc5a1c96cccbdf02a98ab70cfaadf303e6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 4 Oct 2024 08:44:07 +0100 Subject: [PATCH] Rebase to guestfs-tools 1.52.2 resolves: RHEL-56811 --- ...of-libguestfs-winsupport-features-ex.patch | 2 +- 0001-Update-common-submodule.patch | 26 -- ...-builder-Disable-opensuse-repository.patch | 2 +- ...er-Add-a-test-of-the-chown-parameter.patch | 63 ---- ...ze-Implement-inject-blnsvr-operation.patch | 70 +++- ...tor.c-Remove-extra-cases-covered-by-.patch | 47 --- ....m4-Re-add-.-configure-enable-werror.patch | 42 --- 0007-make-fs-Use-S-option-with-z.patch | 43 --- ...earer-that-we-do-not-support-Windows.patch | 28 -- ...EANFILES-for-a-generated-but-few-rar.patch | 63 ---- ...pilation-to-output-whole-exe-instead.patch | 28 -- ...-translate-and-sed-commands-separate.patch | 42 --- ...irt-dib-from-list-of-translated-man-.patch | 25 -- 0013-Update-common-submodule.patch | 65 ---- 0015-Update-common-submodule.patch | 344 ------------------ 0016-Update-common-submodule.patch | 57 --- copy-patches.sh | 2 +- guestfs-tools.spec | 31 +- sources | 4 +- 19 files changed, 67 insertions(+), 917 deletions(-) rename 0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch => 0001-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch (91%) delete mode 100644 0001-Update-common-submodule.patch rename 0004-RHEL-builder-Disable-opensuse-repository.patch => 0002-RHEL-builder-Disable-opensuse-repository.patch (94%) delete mode 100644 0002-builder-Add-a-test-of-the-chown-parameter.patch rename 0014-customize-Implement-inject-blnsvr-operation.patch => 0003-customize-Implement-inject-blnsvr-operation.patch (81%) delete mode 100644 0005-inspector-inspector.c-Remove-extra-cases-covered-by-.patch delete mode 100644 0006-m4-guestfs-c.m4-Re-add-.-configure-enable-werror.patch delete mode 100644 0007-make-fs-Use-S-option-with-z.patch delete mode 100644 0008-sysprep-Make-clearer-that-we-do-not-support-Windows.patch delete mode 100644 0009-build-Use-DISTCLEANFILES-for-a-generated-but-few-rar.patch delete mode 100644 0010-Fix-bytecode-compilation-to-output-whole-exe-instead.patch delete mode 100644 0011-po-docs-Run-po4a-translate-and-sed-commands-separate.patch delete mode 100644 0012-po-docs-Remove-virt-dib-from-list-of-translated-man-.patch delete mode 100644 0013-Update-common-submodule.patch delete mode 100644 0015-Update-common-submodule.patch delete mode 100644 0016-Update-common-submodule.patch diff --git a/0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch b/0001-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch similarity index 91% rename from 0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch rename to 0001-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch index dc5d573..5096c90 100644 --- a/0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch +++ b/0001-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch @@ -1,4 +1,4 @@ -From b5fdf9eac368a1c5df4ddd93ce40884924e6092a Mon Sep 17 00:00:00 2001 +From 1107ededf2cad9982befb4d4b90353117b29d474 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 7 Jul 2015 09:28:03 -0400 Subject: [PATCH] RHEL: Reject use of libguestfs-winsupport features except for diff --git a/0001-Update-common-submodule.patch b/0001-Update-common-submodule.patch deleted file mode 100644 index 1970bb1..0000000 --- a/0001-Update-common-submodule.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 28ecb8693bbded3e1c70c1baa57f3498a6b8127e Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 9 Dec 2023 12:59:13 +0000 -Subject: [PATCH] Update common submodule - -Pick up this bug fix: - - mltools/libosinfo-c.c: Fix off-by-one error ---- - common | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Submodule common cd29aee91..0dba002c2: -diff --git a/common/mltools/libosinfo-c.c b/common/mltools/libosinfo-c.c -index 93357fd91..a48c8989f 100644 ---- a/common/mltools/libosinfo-c.c -+++ b/common/mltools/libosinfo-c.c -@@ -296,7 +296,7 @@ v2v_osinfo_os_get_device_drivers (value osv) - - driver = OSINFO_DEVICE_DRIVER(osinfo_list_get_nth (OSINFO_LIST(list), i)); - -- vi = caml_alloc (6, 0); -+ vi = caml_alloc (7, 0); - str = osinfo_device_driver_get_architecture (driver); - copyv = caml_copy_string (str); - Store_field (vi, 0, copyv); diff --git a/0004-RHEL-builder-Disable-opensuse-repository.patch b/0002-RHEL-builder-Disable-opensuse-repository.patch similarity index 94% rename from 0004-RHEL-builder-Disable-opensuse-repository.patch rename to 0002-RHEL-builder-Disable-opensuse-repository.patch index a80dcfb..e5885ef 100644 --- a/0004-RHEL-builder-Disable-opensuse-repository.patch +++ b/0002-RHEL-builder-Disable-opensuse-repository.patch @@ -1,4 +1,4 @@ -From 511de43cdca80381d52360e050bf57f7079f46d6 Mon Sep 17 00:00:00 2001 +From 517a2ad502fa3773db50e883c0bece69b03b31ca Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 21 Nov 2022 13:03:22 +0000 Subject: [PATCH] RHEL: builder: Disable opensuse repository diff --git a/0002-builder-Add-a-test-of-the-chown-parameter.patch b/0002-builder-Add-a-test-of-the-chown-parameter.patch deleted file mode 100644 index 751ebec..0000000 --- a/0002-builder-Add-a-test-of-the-chown-parameter.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 5f9beb89443f84640efc52ee6cd68f7f880fb66b Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Fri, 19 Jan 2024 13:22:51 +0000 -Subject: [PATCH] builder: Add a test of the --chown parameter - -Also update the libguestfs common submodule, pulling in this change -from libguestfs: - - generator/customize.ml: Split --chown parameter on ':' character - -and this patch to common/mltools: - - mltools/libosinfo-c.c: Fix off-by-one error - -(cherry picked from commit 299dc5ec2a0bdd9adecef75adc6a5eca0dc685b1) ---- - builder/test-virt-builder.sh | 4 ++++ - common | 2 +- - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/builder/test-virt-builder.sh b/builder/test-virt-builder.sh -index 705788a3c..f839fd7af 100755 ---- a/builder/test-virt-builder.sh -+++ b/builder/test-virt-builder.sh -@@ -69,6 +69,7 @@ virt-builder phony-fedora \ - --write '/etc/append6: - ' \ - --append-line '/etc/append6:line2' \ -+ --chown 1:1:/etc/append6 \ - --firstboot Makefile --firstboot-command 'echo "hello"' \ - --firstboot-install "minicom,inkscape" - -@@ -112,6 +113,7 @@ echo append5: - cat /etc/append5 - echo append6: - cat /etc/append6 -+stat /etc/append6 | grep '^[ug]id:' - - echo ----- - EOF -@@ -154,6 +156,8 @@ append6: - - line2 - -+uid: 1 -+gid: 1 - -----" ]; then - echo "$0: unexpected output:" - cat test-virt-builder.out -Submodule common 0dba002c2..54869c987: -diff --git a/common/mlcustomize/customize_cmdline.ml b/common/mlcustomize/customize_cmdline.ml -index 245d9960a..48ee33445 100644 ---- a/common/mlcustomize/customize_cmdline.ml -+++ b/common/mlcustomize/customize_cmdline.ml -@@ -157,7 +157,7 @@ let rec argspec () = - let len = String.length arg in - String.sub arg 0 i, String.sub arg (i+1) (len-(i+1)) - and split_string_triplet option_name arg = -- match String.nsplit ~max:3 "," arg with -+ match String.nsplit ~max:3 ":" arg with - | [a; b; c] -> a, b, c - | _ -> - error (f_"invalid format for '--%s' parameter, see the man page") diff --git a/0014-customize-Implement-inject-blnsvr-operation.patch b/0003-customize-Implement-inject-blnsvr-operation.patch similarity index 81% rename from 0014-customize-Implement-inject-blnsvr-operation.patch rename to 0003-customize-Implement-inject-blnsvr-operation.patch index c8303b0..38553b0 100644 --- a/0014-customize-Implement-inject-blnsvr-operation.patch +++ b/0003-customize-Implement-inject-blnsvr-operation.patch @@ -1,4 +1,4 @@ -From d326f1080aafe32d47b49064099f2e9d7759b2a0 Mon Sep 17 00:00:00 2001 +From 1cb20d561c6b2e93980ba9c7c7269b32f6d768eb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 16 May 2024 12:49:24 +0100 Subject: [PATCH] customize: Implement --inject-blnsvr operation @@ -12,7 +12,7 @@ libguestfs, and the implementation of Inject_virtio_win.inject_blnsvr. customize/customize_run.ml | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) -Submodule common 93a7f3af5..830cbdcf4: +Submodule common 7cbb3ba35...a78839676: diff --git a/common/mlcustomize/customize-options.pod b/common/mlcustomize/customize-options.pod index ff93630d8..b2ac57526 100644 --- a/common/mlcustomize/customize-options.pod @@ -108,7 +108,7 @@ index 51a156eae..ee62961a1 100644 (* --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 +index 0a4b8dac0..afec1e456 100644 --- a/common/mlcustomize/inject_virtio_win.ml +++ b/common/mlcustomize/inject_virtio_win.ml @@ -24,6 +24,8 @@ open Common_gettext.Gettext @@ -120,12 +120,19 @@ index 2a30b2008..4e0ed0e0e 100644 type t = { g : Guestfs.guestfs; (** guestfs handle *) -@@ -267,6 +269,18 @@ and inject_qemu_ga t = - configure_qemu_ga t msi_files; +@@ -274,6 +276,25 @@ and inject_qemu_ga ({ g; root } as t) = + configure_qemu_ga t tempdir_win msi_files; msi_files <> [] (* return true if we found some qemu-ga MSI files *) -+and inject_blnsvr t = -+ let files = copy_blnsvr t in ++and inject_blnsvr ({ g; root } as t) = ++ (* Copy the files to the guest. *) ++ let dir, dir_win = Firstboot.firstboot_dir g root in ++ let dir_win = Option.value dir_win ~default:dir in ++ let tempdir = sprintf "%s/Temp" dir in ++ let tempdir_win = sprintf "%s\\Temp" dir_win in ++ g#mkdir_p tempdir; ++ ++ let files = copy_blnsvr t tempdir in + match files with + | [] -> false (* Didn't find or install anything. *) + @@ -133,25 +140,50 @@ index 2a30b2008..4e0ed0e0e 100644 + * drivers/by-driver). Pick the first. + *) + | blnsvr :: _ -> -+ configure_blnsvr t blnsvr; ++ configure_blnsvr t tempdir_win blnsvr; + true + and add_guestor_to_registry t ((g, root) as reg) drv_name drv_pciid = let ddb_node = g#hivex_node_get_child root "DriverDatabase" in -@@ -351,6 +365,11 @@ and copy_qemu_ga t = +@@ -358,6 +379,11 @@ and copy_qemu_ga t tempdir = (fun () -> error (f_"root directory ‘/’ is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log.")) -+and copy_blnsvr t = -+ copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_blnsvr t) ++and copy_blnsvr t tempdir = ++ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_blnsvr t) + (fun () -> + error (f_"root directory ‘/’ is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log.")) + (* 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 = +@@ -452,10 +478,7 @@ and virtio_iso_path_matches_guest_os t path = + * "./drivers/amd64/Win2012R2/netkvm.sys". + * Note we check lowercase paths. + *) +- let pathelem elem = +- String.find lc_path ("/" ^ elem ^ "/") >= 0 || +- String.is_prefix lc_path (elem ^ "/") +- in ++ let pathelem elem = String.find lc_path ("/" ^ elem ^ "/") >= 0 in + let p_arch = + if pathelem "x86" || pathelem "i386" then "i386" + else if pathelem "amd64" then "x86_64" +@@ -499,11 +522,7 @@ and virtio_iso_path_matches_guest_os t path = + else + raise Not_found in + +- let p_sriov = pathelem "sriov" in +- +- arch = p_arch && +- not p_sriov && (* always ignored, see RHEL-56383 *) +- os_major = p_os_major && os_minor = p_os_minor && ++ arch = p_arch && os_major = p_os_major && os_minor = p_os_minor && + match_os_variant os_variant && + match_osinfo osinfo + +@@ -527,6 +546,10 @@ and virtio_iso_path_matches_qemu_ga t path = | ("x86_64", "rhev-qga64.msi") -> true | _ -> false @@ -162,17 +194,17 @@ index 2a30b2008..4e0ed0e0e 100644 (* 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 +@@ -591,3 +614,10 @@ and configure_qemu_ga t tempdir_win files = + ) files; + + Firstboot.add_firstboot_powershell t.g t.root "install-qemu-ga" !script + -+and configure_blnsvr t blnsvr = ++and configure_blnsvr t tempdir_win blnsvr = + let cmd = sprintf "\ + @echo off\n\ + echo Installing %s\n\ -+ c:\\%s -i\n" blnsvr blnsvr in -+ Firstboot.add_firstboot_script t.g t.root (sprintf "install-%s" blnsvr) cmd ++ \"%s\\%s\" -i\n" blnsvr tempdir_win blnsvr in ++ Firstboot.add_firstboot_script t.g t.root "install-blnsvr" cmd 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 diff --git a/0005-inspector-inspector.c-Remove-extra-cases-covered-by-.patch b/0005-inspector-inspector.c-Remove-extra-cases-covered-by-.patch deleted file mode 100644 index 1bc04da..0000000 --- a/0005-inspector-inspector.c-Remove-extra-cases-covered-by-.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 76080541ae09c6242e0a162009c5faec3ba94b41 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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); diff --git a/0006-m4-guestfs-c.m4-Re-add-.-configure-enable-werror.patch b/0006-m4-guestfs-c.m4-Re-add-.-configure-enable-werror.patch deleted file mode 100644 index ae13179..0000000 --- a/0006-m4-guestfs-c.m4-Re-add-.-configure-enable-werror.patch +++ /dev/null @@ -1,42 +0,0 @@ -From dbc179ab026897be96651e7f9ca6026a3ebf540d Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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). - #--- diff --git a/0007-make-fs-Use-S-option-with-z.patch b/0007-make-fs-Use-S-option-with-z.patch deleted file mode 100644 index 71ac342..0000000 --- a/0007-make-fs-Use-S-option-with-z.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 51b0bf74b249ac6646b7e083a678553fc40d44d7 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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; - diff --git a/0008-sysprep-Make-clearer-that-we-do-not-support-Windows.patch b/0008-sysprep-Make-clearer-that-we-do-not-support-Windows.patch deleted file mode 100644 index 54314af..0000000 --- a/0008-sysprep-Make-clearer-that-we-do-not-support-Windows.patch +++ /dev/null @@ -1,28 +0,0 @@ -From cc0ae4acabfc857f2bcee828e725a9d69dab5735 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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 which is used to unconfigure --Windows machines in preparation for cloning them. Having said that, --virt-sysprep does I 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 - diff --git a/0009-build-Use-DISTCLEANFILES-for-a-generated-but-few-rar.patch b/0009-build-Use-DISTCLEANFILES-for-a-generated-but-few-rar.patch deleted file mode 100644 index 0299109..0000000 --- a/0009-build-Use-DISTCLEANFILES-for-a-generated-but-few-rar.patch +++ /dev/null @@ -1,63 +0,0 @@ -From a103e367c4fd6bd073c324253833289f6a8ecc3a Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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: diff --git a/0010-Fix-bytecode-compilation-to-output-whole-exe-instead.patch b/0010-Fix-bytecode-compilation-to-output-whole-exe-instead.patch deleted file mode 100644 index b4241da..0000000 --- a/0010-Fix-bytecode-compilation-to-output-whole-exe-instead.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 6ea88c2011b02a47058ba6d89af156983bd52a91 Mon Sep 17 00:00:00 2001 -From: Jerry James -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 diff --git a/0011-po-docs-Run-po4a-translate-and-sed-commands-separate.patch b/0011-po-docs-Run-po4a-translate-and-sed-commands-separate.patch deleted file mode 100644 index de72f45..0000000 --- a/0011-po-docs-Run-po4a-translate-and-sed-commands-separate.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 8a942cdd8e6d1aa526844c428660d0bb4ca02770 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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: diff --git a/0012-po-docs-Remove-virt-dib-from-list-of-translated-man-.patch b/0012-po-docs-Remove-virt-dib-from-list-of-translated-man-.patch deleted file mode 100644 index 40e65be..0000000 --- a/0012-po-docs-Remove-virt-dib-from-list-of-translated-man-.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 80806f5438c769b71e92a7669db029f5f243cfce Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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 \ diff --git a/0013-Update-common-submodule.patch b/0013-Update-common-submodule.patch deleted file mode 100644 index 7b86099..0000000 --- a/0013-Update-common-submodule.patch +++ /dev/null @@ -1,65 +0,0 @@ -From d0b1b1eaaebdff2cee004304e9d498cd2a720e23 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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 - 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; - diff --git a/0015-Update-common-submodule.patch b/0015-Update-common-submodule.patch deleted file mode 100644 index 3f51270..0000000 --- a/0015-Update-common-submodule.patch +++ /dev/null @@ -1,344 +0,0 @@ -From a2faa7d57ea997e4194e95a5ccdf2b9e41376f55 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Tue, 6 Aug 2024 08:51:29 +0100 -Subject: [PATCH] Update common submodule - -Considerable changes have been made in virt-v2v to how powershell -scripts are run in Windows guests, and to qemu-ga installation (also -for Windows). This pulls in the following commits: - -Richard W.M. Jones (10): - mlcustomize: firstboot: Use Linux path for Powershell script path - mlcustomize: firstboot: Use powershell.exe instead of path - mlcustomize: firstboot: Use Powershell -NoProfile flag - mlcustomize: Revert delay installation of qemu-ga MSI - mldrivers/linux_kernels.ml: Prefix general information with ^info: - mlcustomize: Use Start-Process -Wait to run qemu-ga installer - mlcustomize: Add Firstboot.firstboot_dir function - mlcustomize: Place powershell scripts into \Temp - mlcustomize: Inject qemu-ga & blnsvr into /Temp - mlcustomize: Write qemu-ga log file name to log.txt - -(cherry picked from commit b8d57760ea9c9d3ec7a21ee41d74731ab81173df) ---- - common | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Submodule common 830cbdcf4..7b84a370e: -diff --git a/common/mlcustomize/firstboot.ml b/common/mlcustomize/firstboot.ml -index 5dc012340..3bbba714d 100644 ---- a/common/mlcustomize/firstboot.ml -+++ b/common/mlcustomize/firstboot.ml -@@ -239,7 +239,22 @@ WantedBy=%s - end - - module Windows = struct -- let rec install_service (g : Guestfs.guestfs) root = -+ (* Create and return the firstboot directory. *) -+ let create_firstboot_dir (g : Guestfs.guestfs) = -+ let rec loop firstboot_dir firstboot_dir_win = function -+ | [] -> firstboot_dir, firstboot_dir_win -+ | dir :: path -> -+ let firstboot_dir = -+ if firstboot_dir = "" then "/" ^ dir else firstboot_dir // dir in -+ let firstboot_dir_win = firstboot_dir_win ^ "\\" ^ dir in -+ let firstboot_dir = g#case_sensitive_path firstboot_dir in -+ g#mkdir_p firstboot_dir; -+ loop firstboot_dir firstboot_dir_win path -+ in -+ loop "" "C:" ["Program Files"; "Guestfs"; "Firstboot"] -+ -+ let rec install_service (g : Guestfs.guestfs) root -+ firstboot_dir firstboot_dir_win = - (* Either rhsrvany.exe or pvvxsvc.exe must exist. - * - * (Check also that it's not a dangling symlink but a real file). -@@ -254,20 +269,7 @@ module Windows = struct - error (f_"One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is required in order to install Windows firstboot scripts. You can get one by building rhsrvany (https://github.com/rwmjones/rhsrvany)") - (virt_tools_data_dir ()) in - -- (* Create a directory for firstboot files in the guest. *) -- let firstboot_dir, firstboot_dir_win = -- let rec loop firstboot_dir firstboot_dir_win = function -- | [] -> firstboot_dir, firstboot_dir_win -- | dir :: path -> -- let firstboot_dir = -- if firstboot_dir = "" then "/" ^ dir else firstboot_dir // dir in -- let firstboot_dir_win = firstboot_dir_win ^ "\\" ^ dir in -- let firstboot_dir = g#case_sensitive_path firstboot_dir in -- g#mkdir_p firstboot_dir; -- loop firstboot_dir firstboot_dir_win path -- in -- loop "" "C:" ["Program Files"; "Guestfs"; "Firstboot"] in -- -+ (* Create a directory for firstboot scripts in the guest. *) - g#mkdir_p (firstboot_dir // "scripts"); - - (* Copy pvvxsvc or rhsrvany to the guest. *) -@@ -339,11 +341,25 @@ echo uninstalling firstboot service - "PWD", REG_SZ firstboot_dir_win ]; - ] in - reg_import reg regedits -- ); -- -- firstboot_dir -+ ) - end - -+let firstboot_dir (g : Guestfs.guestfs) root = -+ let typ = g#inspect_get_type root in -+ -+ match typ with -+ | "linux" -> -+ let dir = Linux.firstboot_dir in -+ g#mkdir_p dir; -+ dir, None -+ -+ | "windows" -> -+ let dir, dir_win = Windows.create_firstboot_dir g in -+ dir, Some dir_win -+ -+ | _ -> -+ error (f_"guest type %s is not supported") typ -+ - let script_count = ref 0 - - let add_firstboot_script (g : Guestfs.guestfs) root ?(prio = 5000) name -@@ -363,7 +379,8 @@ let add_firstboot_script (g : Guestfs.guestfs) root ?(prio = 5000) name - g#chmod 0o755 filename - - | "windows", _ -> -- let firstboot_dir = Windows.install_service g root in -+ let firstboot_dir, firstboot_dir_win = Windows.create_firstboot_dir g in -+ Windows.install_service g root firstboot_dir firstboot_dir_win; - let filename = firstboot_dir // "scripts" // filename ^ ".bat" in - g#write filename (String.unix2dos content) - -@@ -382,21 +399,18 @@ let add_firstboot_powershell g root ?prio name code = - *) - assert (g#inspect_get_type root = "windows"); - -- let windows_systemroot = g#inspect_get_windows_systemroot root in -- -- (* Create the temporary directory to put the Powershell file. *) -- let tempdir = sprintf "%s/Temp" windows_systemroot in -+ (* Place the Powershell script into firstboot_dir/Temp *) -+ let firstboot_dir, firstboot_dir_win = Windows.create_firstboot_dir g in -+ let tempdir = sprintf "%s/Temp" firstboot_dir in - g#mkdir_p tempdir; -+ -+ let ps_path = sprintf "%s/%s.ps1" tempdir name in -+ let ps_path_win = sprintf "%s\\Temp\\%s.ps1" firstboot_dir_win name in - let code = String.concat "\r\n" code ^ "\r\n" in -- g#write (sprintf "%s/%s" tempdir name) code; -+ g#write ps_path code; - -- (* Powershell interpreter. Should we check this exists? XXX *) -- let ps_exe = -- windows_systemroot ^ -- "\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" in -- -- (* Windows path to the Powershell script. *) -- let ps_path = windows_systemroot ^ "\\Temp\\" ^ name in -- -- let fb = sprintf "%s -ExecutionPolicy ByPass -file %s" ps_exe ps_path in -+ (* Create a regular firstboot bat that just invokes powershell *) -+ let fb = -+ sprintf "powershell.exe -ExecutionPolicy ByPass -NoProfile -file \"%s\"" -+ ps_path_win in - add_firstboot_script g root ?prio name fb -diff --git a/common/mlcustomize/firstboot.mli b/common/mlcustomize/firstboot.mli -index 8231af658..34ff06901 100644 ---- a/common/mlcustomize/firstboot.mli -+++ b/common/mlcustomize/firstboot.mli -@@ -16,6 +16,23 @@ - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - *) - -+val firstboot_dir : Guestfs.guestfs -> string -> string * string option -+(** [firstboot_dir g root] -+ returns the path of the firstboot directory, creating it in -+ the guest if necessary. -+ -+ This returns the name of the directory as a guestfs path, and -+ optionally the name as a Windows path (only for Windows guests). -+ -+ For Linux this could be [/usr/lib/virt-sysprep, None] -+ -+ For Windows this could be ["/Program Files/Guestfs/Firstboot", -+ Some "C:\Program Files\Guestfs\Firstboot"] -+ -+ Additional files that are used during firstboot can be placed -+ in this directory, but be careful not to conflict with files -+ and scripts added by the firstboot process itself. *) -+ - val add_firstboot_script : Guestfs.guestfs -> string -> ?prio:int -> string -> - string -> unit - (** [add_firstboot_script g root prio name content] adds a firstboot -diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml -index 4e0ed0e0e..afec1e456 100644 ---- a/common/mlcustomize/inject_virtio_win.ml -+++ b/common/mlcustomize/inject_virtio_win.ml -@@ -263,14 +263,28 @@ let rec inject_virtio_win_drivers ({ g } as t) reg = - } - ) - --and inject_qemu_ga t = -- let msi_files = copy_qemu_ga t in -+and inject_qemu_ga ({ g; root } as t) = -+ (* Copy the qemu-ga MSI(s) to the guest. *) -+ let dir, dir_win = Firstboot.firstboot_dir g root in -+ let dir_win = Option.value dir_win ~default:dir in -+ let tempdir = sprintf "%s/Temp" dir in -+ let tempdir_win = sprintf "%s\\Temp" dir_win in -+ g#mkdir_p tempdir; -+ -+ let msi_files = copy_qemu_ga t tempdir in - if msi_files <> [] then -- configure_qemu_ga t msi_files; -+ configure_qemu_ga t tempdir_win msi_files; - msi_files <> [] (* return true if we found some qemu-ga MSI files *) - --and inject_blnsvr t = -- let files = copy_blnsvr t in -+and inject_blnsvr ({ g; root } as t) = -+ (* Copy the files to the guest. *) -+ let dir, dir_win = Firstboot.firstboot_dir g root in -+ let dir_win = Option.value dir_win ~default:dir in -+ let tempdir = sprintf "%s/Temp" dir in -+ let tempdir_win = sprintf "%s\\Temp" dir_win in -+ g#mkdir_p tempdir; -+ -+ let files = copy_blnsvr t tempdir in - match files with - | [] -> false (* Didn't find or install anything. *) - -@@ -278,7 +292,7 @@ and inject_blnsvr t = - * drivers/by-driver). Pick the first. - *) - | blnsvr :: _ -> -- configure_blnsvr t blnsvr; -+ configure_blnsvr t tempdir_win blnsvr; - true - - and add_guestor_to_registry t ((g, root) as reg) drv_name drv_pciid = -@@ -360,13 +374,13 @@ and copy_drivers t driverdir = - (fun () -> - error (f_"root directory ‘/’ is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log.")) - --and copy_qemu_ga t = -- copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_qemu_ga t) -+and copy_qemu_ga t tempdir = -+ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_qemu_ga t) - (fun () -> - error (f_"root directory ‘/’ is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log.")) - --and copy_blnsvr t = -- copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_blnsvr t) -+and copy_blnsvr t tempdir = -+ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_blnsvr t) - (fun () -> - error (f_"root directory ‘/’ is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log.")) - -@@ -575,44 +589,35 @@ and copy_from_libosinfo { g; i_osinfo; i_arch } destdir = - ) driver.Libosinfo.files - with Not_found -> [] - --and configure_qemu_ga t files = -+(* Install qemu-ga. [files] is the non-empty list of possible qemu-ga -+ * installers we detected. -+ *) -+and configure_qemu_ga t tempdir_win files = -+ let script = ref [] in -+ let add = List.push_back script in -+ -+ add "# Virt-v2v script which installs QEMU Guest Agent"; -+ add ""; -+ add "# Uncomment this line for lots of debug output."; -+ add "# Set-PSDebug -Trace 2"; -+ add ""; -+ add "Write-Host Installing QEMU Guest Agent"; -+ add ""; -+ add "# Run qemu-ga installers"; - List.iter ( -- fun msi_path -> -- (* Windows is a trashfire. -- * https://stackoverflow.com/a/18730884 -- * https://bugzilla.redhat.com/show_bug.cgi?id=1895323 -- *) -- let psh_script = ref [] in -- let add = List.push_back psh_script in -+ fun msi -> -+ add (sprintf "Write-Host \"Writing log to %s\\%s.log\"" -+ tempdir_win msi); -+ (* [`] is an escape char for quotes *) -+ add (sprintf "Start-Process -Wait -FilePath \"%s\\%s\" -ArgumentList \"/norestart\",\"/qn\",\"/l+*vx\",\"`\"%s\\%s.log`\"\"" -+ tempdir_win msi tempdir_win msi) -+ ) files; - -- add "# Uncomment this line for lots of debug output."; -- add "# Set-PSDebug -Trace 2"; -- add ""; -- add "Write-Host Removing any previously scheduled qemu-ga installation"; -- add "schtasks.exe /Delete /TN Firstboot-qemu-ga /F"; -- add ""; -- add (sprintf -- "Write-Host Scheduling delayed installation of qemu-ga from %s" -- msi_path); -- add "$d = (get-date).AddSeconds(120)"; -- add "$dtfinfo = [System.Globalization.DateTimeFormatInfo]::CurrentInfo"; -- add "$sdp = $dtfinfo.ShortDatePattern"; -- add "$sdp = $sdp -replace 'y+', 'yyyy'"; -- add "$sdp = $sdp -replace 'M+', 'MM'"; -- add "$sdp = $sdp -replace 'd+', 'dd'"; -- add "schtasks.exe /Create /SC ONCE `"; -- add " /ST $d.ToString('HH:mm') /SD $d.ToString($sdp) `"; -- add " /RU SYSTEM /TN Firstboot-qemu-ga `"; -- add (sprintf " /TR \"C:\\%s /forcerestart /qn /l+*vx C:\\%s.log\"" -- msi_path msi_path); -+ Firstboot.add_firstboot_powershell t.g t.root "install-qemu-ga" !script - -- Firstboot.add_firstboot_powershell t.g t.root -- (sprintf "install-%s.ps1" msi_path) !psh_script; -- ) files -- --and configure_blnsvr t blnsvr = -+and configure_blnsvr t tempdir_win blnsvr = - let cmd = sprintf "\ - @echo off\n\ - echo Installing %s\n\ -- c:\\%s -i\n" blnsvr blnsvr in -- Firstboot.add_firstboot_script t.g t.root (sprintf "install-%s" blnsvr) cmd -+ \"%s\\%s\" -i\n" blnsvr tempdir_win blnsvr in -+ Firstboot.add_firstboot_script t.g t.root "install-blnsvr" cmd -diff --git a/common/mldrivers/linux_kernels.ml b/common/mldrivers/linux_kernels.ml -index 23ff76a55..e0b6b8a00 100644 ---- a/common/mldrivers/linux_kernels.ml -+++ b/common/mldrivers/linux_kernels.ml -@@ -102,7 +102,7 @@ let detect_kernels (g : G.guestfs) root bootloader apps = - ) apps in - if verbose () then ( - let names = List.map (fun { G.app2_name = name } -> name) kernel_pkgs in -- eprintf "candidate kernel packages in this guest: %s%!\n" -+ eprintf "info: candidate kernel packages in this guest: %s%!\n" - (String.concat " " names) - ); - List.filter_map ( -@@ -306,7 +306,7 @@ let detect_kernels (g : G.guestfs) root bootloader apps = - ) kernel_pkgs in - - if verbose () then ( -- eprintf "installed kernel packages in this guest:\n"; -+ eprintf "info: installed kernel packages in this guest:\n"; - List.iter (print_kernel_info stderr "\t") installed_kernels; - flush stderr - ); -@@ -343,7 +343,7 @@ let detect_kernels (g : G.guestfs) root bootloader apps = - ) vmlinuzes in - - if verbose () then ( -- eprintf "kernels offered by the bootloader in this guest (first in list is default):\n"; -+ eprintf "info: kernels offered by the bootloader in this guest (first in list is default):\n"; - List.iter (print_kernel_info stderr "\t") bootloader_kernels; - flush stderr - ); diff --git a/0016-Update-common-submodule.patch b/0016-Update-common-submodule.patch deleted file mode 100644 index 2fa5601..0000000 --- a/0016-Update-common-submodule.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 924bf9e6b76fa6c910c1708a20e0716384fbbe07 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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 diff --git a/copy-patches.sh b/copy-patches.sh index 13343e8..7b31965 100755 --- a/copy-patches.sh +++ b/copy-patches.sh @@ -7,7 +7,7 @@ set -e # ./copy-patches.sh project=guestfs-tools -rhel_version=9.5 +rhel_version=9.6 # Check we're in the right directory. if [ ! -f $project.spec ]; then diff --git a/guestfs-tools.spec b/guestfs-tools.spec index 7e56904..98f63b3 100644 --- a/guestfs-tools.spec +++ b/guestfs-tools.spec @@ -11,15 +11,15 @@ %global patches_touch_autotools 1 # The source directory. -%global source_directory 1.51-development +%global source_directory 1.52-stable # Filter perl provides. %{?perl_default_filter} Summary: Tools to access and modify virtual machine disk images Name: guestfs-tools -Version: 1.51.6 -Release: 5%{?dist} +Version: 1.52.2 +Release: 1%{?dist} License: GPL-2.0-or-later AND LGPL-2.0-or-later # Build only for architectures that have a kernel @@ -45,25 +45,12 @@ Source2: libguestfs.keyring Source3: copy-patches.sh # 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.6 # Patches. -Patch0001: 0001-Update-common-submodule.patch -Patch0002: 0002-builder-Add-a-test-of-the-chown-parameter.patch -Patch0003: 0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch -Patch0004: 0004-RHEL-builder-Disable-opensuse-repository.patch -Patch0005: 0005-inspector-inspector.c-Remove-extra-cases-covered-by-.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 +Patch0001: 0001-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch +Patch0002: 0002-RHEL-builder-Disable-opensuse-repository.patch +Patch0003: 0003-customize-Implement-inject-blnsvr-operation.patch %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool, gettext-devel @@ -422,6 +409,10 @@ end %changelog +* Fri Oct 04 2024 Richard W.M. Jones - 1.52.2-1 +- Rebase to guestfs-tools 1.52.2 + resolves: RHEL-56811 + * Tue Aug 27 2024 Richard W.M. Jones - 1.51.6-5 - Reboot Windows between each firstboot script to improve reliability resolves: RHEL-55759 diff --git a/sources b/sources index 9337bfa..416a0b1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (guestfs-tools-1.51.6.tar.gz) = 48e6d5bb7c8b1e6b7b9b7e59b3122b287d321d3e8e435fa65f84aab594d8cf91b0d6d50a4dde7f9265ccabc73bb3b67a8593bfd86a4fbf6b17323fe8496fc8c5 -SHA512 (guestfs-tools-1.51.6.tar.gz.sig) = 341e5220a3251e019dbca20997d478f2ea49008e488f9cfa309a636502902eb3e84dbcadea5f9993e19b1066766a6e1afd1aaf2b22e74212699da66c0a9266ab +SHA512 (guestfs-tools-1.52.2.tar.gz) = a4c0b4fbefcc7787a31a5869f12a6ce46b3de21ad19f1ac9563fac03806b227a4f6e872e6416e2dfe4c246582b04356d7dc3d70b0d694011ee9bdef6ba9c5ac3 +SHA512 (guestfs-tools-1.52.2.tar.gz.sig) = 5958d6e61274e7843d76112db587da685484635b69f2c053345986ef312fbb8d7b63430acdee1acb30cb523068fe7dec3fd5c82ef57a0a0bf62d14100cc09956