From cad02d9edd9903385945957969020fde8340542d Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Wed, 15 Mar 2023 18:51:22 +0300 Subject: [PATCH] import mingw-qemu-ga-win-104.0.2-1.el9 --- .gitignore | 1 + .mingw-qemu-ga-win.metadata | 1 + SOURCES/0001-Change-Version.patch | 19 ++ ...igure-Add-cross-prefix-for-widl-tool.patch | 46 ++++ SOURCES/0001-qga-Log-version-on-start.patch | 25 ++ ...to-generated-headers-to-dependencies.patch | 25 ++ ...se-a-proper-function-for-free-memory.patch | 33 +++ ...uild-qga-vss.tlb-when-qga-vss.dll-is.patch | 32 +++ SPECS/mingw-qemu-ga-win.spec | 235 ++++++++++++++++++ 9 files changed, 417 insertions(+) create mode 100644 .gitignore create mode 100644 .mingw-qemu-ga-win.metadata create mode 100644 SOURCES/0001-Change-Version.patch create mode 100644 SOURCES/0001-configure-Add-cross-prefix-for-widl-tool.patch create mode 100644 SOURCES/0001-qga-Log-version-on-start.patch create mode 100644 SOURCES/0001-qga-vss-Add-auto-generated-headers-to-dependencies.patch create mode 100644 SOURCES/0001-qga-vss-Use-a-proper-function-for-free-memory.patch create mode 100644 SOURCES/0002-qga-vss-always-build-qga-vss.tlb-when-qga-vss.dll-is.patch create mode 100644 SPECS/mingw-qemu-ga-win.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..981c174 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/qemu-7.0.0.tar.bz2 diff --git a/.mingw-qemu-ga-win.metadata b/.mingw-qemu-ga-win.metadata new file mode 100644 index 0000000..7b6b8d2 --- /dev/null +++ b/.mingw-qemu-ga-win.metadata @@ -0,0 +1 @@ +d56af4231110566e7eabe44ed16c41de58d6435b SOURCES/qemu-7.0.0.tar.bz2 diff --git a/SOURCES/0001-Change-Version.patch b/SOURCES/0001-Change-Version.patch new file mode 100644 index 0000000..9795475 --- /dev/null +++ b/SOURCES/0001-Change-Version.patch @@ -0,0 +1,19 @@ +From 2b3580d0aea17648d3fb86dc8b993dfcb2b66f16 Mon Sep 17 00:00:00 2001 +From: Yan Vugenfirer +Date: Tue, 22 Jun 2021 13:13:00 +0300 +Subject: [PATCH 1/1] Change Version + +Signed-off-by: Yan Vugenfirer +--- + VERSION | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/VERSION b/VERSION +index 91ff57278e..586de296f5 100644 +--- a/VERSION ++++ b/VERSION +@@ -1 +1 @@ +-7.0.0 ++104.0.2 +-- +2.17.2 diff --git a/SOURCES/0001-configure-Add-cross-prefix-for-widl-tool.patch b/SOURCES/0001-configure-Add-cross-prefix-for-widl-tool.patch new file mode 100644 index 0000000..e5c4529 --- /dev/null +++ b/SOURCES/0001-configure-Add-cross-prefix-for-widl-tool.patch @@ -0,0 +1,46 @@ +From c0d0aa99062d0084c2c24ebd16fd59ce1819277b Mon Sep 17 00:00:00 2001 +From: Konstantin Kostiuk +Date: Thu, 28 Apr 2022 16:37:38 +0000 +Subject: [PATCH 1/2] configure: Add cross prefix for widl tool + +The mingw-w64-tool package in Fedora provides widl tool with a +cross prefix, so adds it automatically for cross builds. + +WIDL env can be used to redefine the path to tool. +The same behavior as with windres. + +Signed-off-by: Konstantin Kostiuk +--- + configure | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/configure b/configure +index 59c43bea05..8b775492d0 100755 +--- a/configure ++++ b/configure +@@ -415,6 +415,7 @@ ranlib="${RANLIB-${cross_prefix}ranlib}" + nm="${NM-${cross_prefix}nm}" + smbd="$SMBD" + strip="${STRIP-${cross_prefix}strip}" ++widl="${WIDL-${cross_prefix}widl}" + windres="${WINDRES-${cross_prefix}windres}" + pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}" + query_pkg_config() { +@@ -2786,6 +2787,7 @@ if test "$skip_meson" = no; then + echo "sdl2-config = [$(meson_quote $sdl2_config)]" >> $cross + fi + echo "strip = [$(meson_quote $strip)]" >> $cross ++ echo "widl = [$(meson_quote $widl)]" >> $cross + echo "windres = [$(meson_quote $windres)]" >> $cross + if test "$cross_compile" = "yes"; then + cross_arg="--cross-file config-meson.cross" +@@ -2907,6 +2909,7 @@ preserve_env PYTHON + preserve_env SDL2_CONFIG + preserve_env SMBD + preserve_env STRIP ++preserve_env WIDL + preserve_env WINDRES + + printf "exec" >>config.status +-- +2.25.1 diff --git a/SOURCES/0001-qga-Log-version-on-start.patch b/SOURCES/0001-qga-Log-version-on-start.patch new file mode 100644 index 0000000..49df653 --- /dev/null +++ b/SOURCES/0001-qga-Log-version-on-start.patch @@ -0,0 +1,25 @@ +From 66fc295c9a2e29d04fafe729a384e321a347eca3 Mon Sep 17 00:00:00 2001 +From: Kostiantyn Kostiuk +Date: Tue, 20 Jul 2021 17:19:34 +0000 +Subject: [PATCH 1/2] qga: Log version on start + +Signed-off-by: Kostiantyn Kostiuk +--- + qga/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/qga/main.c b/qga/main.c +index dea6a3aa64..bce93dfdd0 100644 +--- a/qga/main.c ++++ b/qga/main.c +@@ -1538,6 +1538,7 @@ int main(int argc, char **argv) + goto end; + } + ++ slog("Guest agent version %s started", QEMU_VERSION); + #ifdef _WIN32 + if (config->daemonize) { + SERVICE_TABLE_ENTRY service_table[] = { +-- +2.25.1 + diff --git a/SOURCES/0001-qga-vss-Add-auto-generated-headers-to-dependencies.patch b/SOURCES/0001-qga-vss-Add-auto-generated-headers-to-dependencies.patch new file mode 100644 index 0000000..58bc425 --- /dev/null +++ b/SOURCES/0001-qga-vss-Add-auto-generated-headers-to-dependencies.patch @@ -0,0 +1,25 @@ +From 0b188ab30b32fc16adbcb2da768edfa0ec1fc805 Mon Sep 17 00:00:00 2001 +From: Konstantin Kostiuk +Date: Thu, 12 May 2022 15:41:43 +0000 +Subject: [PATCH] qga-vss: Add auto generated headers to dependencies + +Signed-off-by: Konstantin Kostiuk +--- + qga/vss-win32/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build +index 26c5dd6e0e..9483ccd3b8 100644 +--- a/qga/vss-win32/meson.build ++++ b/qga/vss-win32/meson.build +@@ -7,7 +7,7 @@ link_args = cc.get_supported_link_arguments([ + + qga_vss = shared_module( + 'qga-vss', +- ['requester.cpp', 'provider.cpp', 'install.cpp'], ++ ['requester.cpp', 'provider.cpp', 'install.cpp', genh], + name_prefix: '', + cpp_args: ['-Wno-unknown-pragmas', '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'], + link_args: link_args, +-- +2.25.1 diff --git a/SOURCES/0001-qga-vss-Use-a-proper-function-for-free-memory.patch b/SOURCES/0001-qga-vss-Use-a-proper-function-for-free-memory.patch new file mode 100644 index 0000000..6bcbaea --- /dev/null +++ b/SOURCES/0001-qga-vss-Use-a-proper-function-for-free-memory.patch @@ -0,0 +1,33 @@ +From 4ee7074cdf48e77886637e12f148e267329978d3 Mon Sep 17 00:00:00 2001 +From: Konstantin Kostiuk +Date: Thu, 12 May 2022 15:43:37 +0000 +Subject: [PATCH] qga-vss: Use a proper function for free memory + +volume_name_wchar is allocated by 'void* operator new [](long long unsigned int) + +Signed-off-by: Konstantin Kostiuk +--- + qga/vss-win32/requester.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp +index 4513324dd2..b371affeab 100644 +--- a/qga/vss-win32/requester.cpp ++++ b/qga/vss-win32/requester.cpp +@@ -354,12 +354,12 @@ void requester_freeze(int *num_vols, void *mountpoints, ErrorSet *errset) + if (FAILED(hr)) { + err_set(errset, hr, "failed to add %S to snapshot set", + volume_name_wchar); +- delete volume_name_wchar; ++ delete[] volume_name_wchar; + goto out; + } + num_mount_points++; + +- delete volume_name_wchar; ++ delete[] volume_name_wchar; + } + + if (num_mount_points == 0) { +-- +2.25.1 diff --git a/SOURCES/0002-qga-vss-always-build-qga-vss.tlb-when-qga-vss.dll-is.patch b/SOURCES/0002-qga-vss-always-build-qga-vss.tlb-when-qga-vss.dll-is.patch new file mode 100644 index 0000000..6ffff1e --- /dev/null +++ b/SOURCES/0002-qga-vss-always-build-qga-vss.tlb-when-qga-vss.dll-is.patch @@ -0,0 +1,32 @@ +From 338883766e88555287c3685c55a909eac5ab0f64 Mon Sep 17 00:00:00 2001 +From: Konstantin Kostiuk +Date: Thu, 28 Apr 2022 16:41:13 +0000 +Subject: [PATCH 2/2] qga-vss: always build qga-vss.tlb when qga-vss.dll is + built + +Signed-off-by: Konstantin Kostiuk +--- + qga/vss-win32/meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build +index 71c50d0866..26c5dd6e0e 100644 +--- a/qga/vss-win32/meson.build ++++ b/qga/vss-win32/meson.build +@@ -23,8 +23,6 @@ qga_vss = shared_module( + ] + ) + +-all_qga += qga_vss +- + if midl.found() + gen_tlb = custom_target('gen-tlb', + input: 'qga-vss.idl', +@@ -36,3 +34,5 @@ else + output: 'qga-vss.tlb', + command: [widl, '-t', '@INPUT@', '-o', '@OUTPUT@']) + endif ++ ++all_qga += [ qga_vss, gen_tlb ] +-- +2.25.1 diff --git a/SPECS/mingw-qemu-ga-win.spec b/SPECS/mingw-qemu-ga-win.spec new file mode 100644 index 0000000..2273f2d --- /dev/null +++ b/SPECS/mingw-qemu-ga-win.spec @@ -0,0 +1,235 @@ +%{?mingw_package_header} + +%define with_vss 1 +%define qemu_version 7.0.0 +%define ga_manufacturer "RedHat" +%define ga_distro "RHEL" + +Name: mingw-qemu-ga-win +Version: 104.0.2 +Release: 1%{?dist} +Summary: Qemus Guest agent for Windows + +Group: System Environment/Daemons +License: GPLv2+ and LGPLv2+ and BSD +URL: http://www.qemu.org/ +Requires(post): system-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Source0: http://wiki.qemu.org/download/qemu-%{qemu_version}.tar.bz2 + +Patch0001: 0001-Change-Version.patch +Patch0002: 0001-qga-Log-version-on-start.patch +Patch0003: 0001-configure-Add-cross-prefix-for-widl-tool.patch +Patch0004: 0002-qga-vss-always-build-qga-vss.tlb-when-qga-vss.dll-is.patch +Patch0005: 0001-qga-vss-Add-auto-generated-headers-to-dependencies.patch +Patch0006: 0001-qga-vss-Use-a-proper-function-for-free-memory.patch + +BuildArch: noarch + +BuildRequires: libtool +BuildRequires: zlib-devel +BuildRequires: glib2-devel +BuildRequires: python3-devel +BuildRequires: gettext +BuildRequires: gettext-devel +BuildRequires: mingw32-pixman +BuildRequires: mingw64-pixman +BuildRequires: mingw32-gcc >= 7.4.0 +BuildRequires: mingw64-gcc >= 7.4.0 +BuildRequires: mingw32-glib2 +BuildRequires: mingw64-glib2 +BuildRequires: mingw64-headers >= 10.0.0 +BuildRequires: mingw32-headers >= 10.0.0 +BuildRequires: mingw-w64-tools >= 10.0.0 +BuildRequires: msitools >= 0.93.93 +BuildRequires: meson +BuildRequires: ninja-build + +%description +qemu-kvm is an open source virtualizer that provides hardware emulation for +the KVM hypervisor. + +This package provides an agent to run inside guests, which communicates +with the host over a virtio-serial channel named "org.qemu.guest_agent.0" + +This package does not need to be installed on the host OS. + +%package -n qemu-ga-win +Summary: %{summary} + +%description -n qemu-ga-win +Qemu Guest Agent for Windows + +%prep +%setup -q -n qemu-%{qemu_version} +%patch0001 -p1 +%patch0002 -p1 +%patch0003 -p1 +%patch0004 -p1 +%patch0005 -p1 +%patch0006 -p1 + +%build + +rm -rf $RPM_BUILD_ROOT + +export QEMU_GA_MANUFACTURER="%{ga_manufacturer}" +export QEMU_GA_DISTRO="%{ga_distro}" +export QEMU_GA_VERSION="%{version}" + +#Build for Win32 +%{mingw32_env} +./configure \ + --disable-docs \ + --disable-zlib-test \ + --target-list=x86_64-softmmu \ + --cross-prefix=i686-w64-mingw32- \ + --enable-guest-agent-msi \ +%if %{with_vss} + --enable-qga-vss \ +%endif + || cat %{_builddir}/qemu-%{qemu_version}/build/config.log + +make -j$(nproc) qemu-ga + +mkdir -p $RPM_BUILD_ROOT%{mingw32_bindir} +# cp build/qga/qemu-ga.exe $RPM_BUILD_ROOT%{mingw32_bindir} +cp build/qga/qemu-ga-i386.msi $RPM_BUILD_ROOT%{mingw32_bindir} + +#Build for Win64 +%{mingw64_env} +./configure \ + --disable-docs \ + --disable-zlib-test \ + --target-list=x86_64-softmmu \ + --cross-prefix=x86_64-w64-mingw32- \ + --enable-guest-agent-msi \ +%if %{with_vss} + --enable-qga-vss \ +%endif + || cat %{_builddir}/qemu-%{qemu_version}/build/config.log + +make -j$(nproc) qemu-ga + +mkdir -p $RPM_BUILD_ROOT%{mingw64_bindir} +# cp build/qga/qemu-ga.exe $RPM_BUILD_ROOT%{mingw64_bindir} +cp build/qga/qemu-ga-x86_64.msi $RPM_BUILD_ROOT%{mingw64_bindir} + + +%files -n qemu-ga-win +%defattr(-,root,root) +%{mingw32_bindir}/qemu-ga* +%{mingw64_bindir}/qemu-ga* + +%changelog +* Wed Mar 15 2023 MSVSphere Packaging Team - 104.0.2-1 +- Rebuilt for MSVSphere 9.1. + +* Tue May 17 2022 Konstantin Kostiuk 104.0.2 +- Set version to 104.0.2 +- BZ#2084608 - Fix mismatched allocation function +- BZ#2084613 - qga-win: race condition in build + +* Thu May 12 2022 Konstantin Kostiuk 104.0.1 +- Set version to 104.0.1 +- BZ#2084493 - qemu-ga can't be installed + +* Mon Apr 25 2022 Konstantin Kostiuk 104.0.0 +- Set version to 104.0.0 +- BZ#2078384 - Rebase QEMU Guest Agent Windows to 7.0.0 +- Rebase to qemu-7.0.0 + +* Mon Jan 24 2022 Konstantin Kostiuk 103.0.0 +- Set version to 103.0.0 +- BZ#1992643 - Add mingw-qemu-ga-win package to CentOS stream +- Rebase to qemu-6.2.0 + +* Mon Dec 27 2021 Yan Vugenfirer 102.10.0 +- Set version to 102.10.0 +- BZ#2026167 - Add Windows11 version support for mingw-qemu-ga +- Dynamically link mingw-glib2 library + +* Thu Dec 23 2021 Yan Vugenfirer 102.9.0 +- Set version to 102.9.0 +- BZ#2026167 - Add Windows11 version support for mingw-qemu-ga +- Use mingw-glib2-2.70.1 + +* Thu Nov 25 2021 Yan Vugenfirer 102.8.8 +- Set version to 102.8.0 +- BZ#2026167 - Add Windows11 version support for mingw-qemu-ga + +* Wed Jul 21 2021 Yan Vugenfirer 102.7.0 +- Set version to 102.7.0 +- BZ#1958825 - Memory leak in qemu-ga for Windows + +* Tue Jul 13 2021 Yan Vugenfirer 102.6.0 +- Set version to 102.6.0 +- BZ#1978859 - The qemu-ga-win build version in MSI is different between checking inside guest and qga command +- BZ#1981302 - QGA version can't be upgrade directly without uninstalling old version + +* Tue Jun 22 2021 Yan Vugenfirer 102.5.0 +- Set version to 102.5.0 +- Bug 1972070 - RFE: Add Windows Server 2022 version support for mingw-qemu-ga + +* Wed Jun 16 2021 Yan Vugenfirer 102.2.0 +- Set version to 102.2.0 +- Bug 1958825 - fix memory leak in qemu-ga for Windows + +* Mon Jun 7 2021 Yan Vugenfirer 102.1.0 +- Set version to 102.1.0 +- BZ#1957377 - ownstream qemu-ga should report the build number and not QEMU version + +* Wed Feb 24 2021 Basil Salman 102.0.0 +- rebase to qemu-5.2.0 +- Set version to 102.0.0 +- BZ#1915198 - Rebase mingw-qemu-ga-win to qemu 5.2 +- BZ#1929144 - fix qemu-ga-win resource leaks +- BZ#1920874 - Some changes of qga command "get-devices" should be fix on mingw-qemu-ga-win to qemu 5.2 +- BZ#1919535 - Can not get the disks of windows guest via guest agent +- BZ#1909073 - Filesystem freeze on Windows reports errors frequently + +* Mon Aug 3 2020 Basil Salman 101.2.0 +BZ#1746667 - [qemu-guest-agent]System reserve volume's file system via guest agent is different from it's in guest +BZ#1549425 - Getting response from guest-fsfreeze-thaw need about 90s sometimes + +* Thu Mar 5 2020 Basil Salman 101.1.0 +BZ#1790455 - Add guest-get-devices command to qemu-ga-win + +* Thu Oct 24 2019 Basil Salman 101.0.0 +BZ#1733165 - QEMU Guest Agent For Windows Return Garbled NIC Name +BZ#1751431 - "guest-get-memory-block-info" is enabled but in fact it is not currently supported + +* Tue Jan 22 2019 Yan Vugenfirer 100.0.0 +BZ#1651655 - Rebase mingw-qemu-ga-win to qemu 3.1. Change the versioning scheme to independent scheme for qemu-ga-win + +* Mon Dec 24 2018 Sameeh Jubran 8.0.0 +BZ#1645018 - CVE-2018-12617 virtio-win: Qemu: qemu-guest-agent: Integer overflow causes segmentation fault in qmp_guest_file_read() + +* Sun Dec 23 2018 Sameeh Jubran 8.0.0 +BZ#1659071 [RFE]Add "windows 2019 x64" support to OS reporting + +* Thu Nov 08 2018 Sameeh Jubran 8.0.0 +#rebase mingw-qemu-ga-win to qemu 3.1.0 + +* Sun Jun 24 2018 Sameeh Jubran 7.6.0 +BZ#1565431 - "Disk" is [] in the result of guest-get-fsinfo cmd which is odd +BZ#1594113 - Error returned after issue {"execute":"guest-fstrim" } cmd for win7-32/64 and win2008-32/64/r2 guest +BZ#1536331 - Failed to upgrade qemu-ga without virtio-serial driver installed + +* Wed Jan 24 2018 Sameeh Jubran 7.5.0 +BZ#1536954 - Issuing guest-fsfreeze-freeze cmd for the first time on a new qemu-ga,can not get response. + +* Wed Dec 13 2017 Sameeh Jubran 2.9.5 +- Add resolved BZs to changelog +BZ#1514303 - QEMU Guest Agent VSS Provider service is being installed with startup type: Automatic +BZ#990629 - [Windows Guest Tools] QEMU Guest Agent service failed | After post-installation reboot another reboot is needed +BZ#1514382 - [guest-agent]Still can write to freezed file system after run "{ "execute": "guest-fsfreeze-freeze"}" cmd. +BZ#1071499 - qemu guest agent for Windows should support guest-set-time command +BZ#1082999 - [WGT] Win 2008 32bit: Detected circular dependencies demand starting RHEV Spice Agent. +BZ#1470649 - [virtio-win[qemu-ga-win][upstream]]Unable to install qemu-ga on Windows platform : QEMU guest agent -- Error 1722 +BZ#1514347 - [qemu-ga-win] QEMU guest agent's version is not correct. +BZ#1515137 - Error window pops up during installing windows qemu-ga-win.msi manually + +* Sun Jun 04 2017 Sameeh Jubran - 2.9.0 +- First release