Compare commits
4 Commits
imports/c9
...
c9-beta
Author | SHA1 | Date | |
---|---|---|---|
8c1439a742 | |||
03f0512fa3 | |||
|
379fc43bca | ||
|
311fdd6e40 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1 @@
|
||||
SOURCES/VSSSDK72.tar.gz
|
||||
SOURCES/qemu-6.2.0.tar.bz2
|
||||
SOURCES/qemu-9.0.0.tar.bz2
|
||||
|
@ -1,2 +1 @@
|
||||
7dd4cfd7ad43ececee10e113f9d92cefc66ef2a4 SOURCES/VSSSDK72.tar.gz
|
||||
f0d3a2e9b1565d5d7b0e25a73bf37d603a0d13fa SOURCES/qemu-6.2.0.tar.bz2
|
||||
ea9c805cb76f242d866624dc7fef063ec631405c SOURCES/qemu-9.0.0.tar.bz2
|
||||
|
@ -13,7 +13,7 @@ index 91ff57278e..586de296f5 100644
|
||||
--- a/VERSION
|
||||
+++ b/VERSION
|
||||
@@ -1 +1 @@
|
||||
-6.2.0
|
||||
+103.0.0
|
||||
-9.0.0
|
||||
+108.0.2
|
||||
--
|
||||
2.17.2
|
||||
|
@ -1,33 +0,0 @@
|
||||
From e3583e102870f37f7abef4e501a718e83b5a75d1 Mon Sep 17 00:00:00 2001
|
||||
From: Yan Vugenfirer <yvugenfi@redhat.com>
|
||||
Date: Mon, 27 Dec 2021 01:48:22 +0200
|
||||
Subject: [PATCH] Remove redundant GUID definitions.
|
||||
|
||||
GUID_DEVINTERFACE_STORAGEPORT and GUID_DEVINTERFACE_DISK are already defined in glib2
|
||||
|
||||
Signed-off-by: Yan Vugenfirer <yvugenfi@redhat.com>
|
||||
---
|
||||
qga/commands-win32.c | 7 -------
|
||||
1 file changed, 7 deletions(-)
|
||||
|
||||
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||||
index 830a24a..fbc5dfd 100644
|
||||
--- a/qga/commands-win32.c
|
||||
+++ b/qga/commands-win32.c
|
||||
@@ -505,13 +505,6 @@ static GuestDiskBusType find_bus_type(STORAGE_BUS_TYPE bus)
|
||||
return win2qemu[(int)bus];
|
||||
}
|
||||
|
||||
-DEFINE_GUID(GUID_DEVINTERFACE_DISK,
|
||||
- 0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2,
|
||||
- 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
|
||||
-DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,
|
||||
- 0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82,
|
||||
- 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
|
||||
-
|
||||
static GuestPCIAddress *get_pci_info(int number, Error **errp)
|
||||
{
|
||||
HDEVINFO dev_info = INVALID_HANDLE_VALUE;
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,73 +0,0 @@
|
||||
From 2ee0253554227bd0cd26a00467765187168dda87 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||
Date: Wed, 2 Feb 2022 00:23:33 +0400
|
||||
Subject: [PATCH] meson: do not make qga/vss-win32/meson.build conditional on
|
||||
C++ presence
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
C++ presence is checked by the qga/ directory, so it can be assumed
|
||||
when building VSS module.
|
||||
|
||||
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
---
|
||||
qga/vss-win32/meson.build | 41 +++++++++++++++++++++++----------------
|
||||
1 file changed, 24 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
|
||||
index 90825edef3..5982a6c6d8 100644
|
||||
--- a/qga/vss-win32/meson.build
|
||||
+++ b/qga/vss-win32/meson.build
|
||||
@@ -1,22 +1,29 @@
|
||||
-if add_languages('cpp', required: false)
|
||||
- glib_dynamic = dependency('glib-2.0', static: false)
|
||||
- link_args = cc.get_supported_link_arguments(['-fstack-protector-all', '-fstack-protector-strong',
|
||||
- '-Wl,--add-stdcall-alias', '-Wl,--enable-stdcall-fixup'])
|
||||
+glib_dynamic = dependency('glib-2.0', static: false)
|
||||
+link_args = cc.get_supported_link_arguments([
|
||||
+ '-fstack-protector-all',
|
||||
+ '-fstack-protector-strong',
|
||||
+ '-Wl,--add-stdcall-alias',
|
||||
+ '-Wl,--enable-stdcall-fixup'
|
||||
+])
|
||||
|
||||
- qga_vss = shared_module('qga-vss', ['requester.cpp', 'provider.cpp', 'install.cpp'],
|
||||
- name_prefix: '',
|
||||
- cpp_args: ['-Wno-unknown-pragmas', '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
|
||||
- link_args: link_args,
|
||||
- vs_module_defs: 'qga-vss.def',
|
||||
- dependencies: [glib_dynamic, socket,
|
||||
- cc.find_library('ole32'),
|
||||
- cc.find_library('oleaut32'),
|
||||
- cc.find_library('shlwapi'),
|
||||
- cc.find_library('uuid'),
|
||||
- cc.find_library('intl')])
|
||||
+qga_vss = shared_module(
|
||||
+ 'qga-vss',
|
||||
+ ['requester.cpp', 'provider.cpp', 'install.cpp'],
|
||||
+ name_prefix: '',
|
||||
+ cpp_args: ['-Wno-unknown-pragmas', '-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
|
||||
+ link_args: link_args,
|
||||
+ vs_module_defs: 'qga-vss.def',
|
||||
+ dependencies: [
|
||||
+ glib_dynamic, socket,
|
||||
+ cc.find_library('ole32'),
|
||||
+ cc.find_library('oleaut32'),
|
||||
+ cc.find_library('shlwapi'),
|
||||
+ cc.find_library('uuid'),
|
||||
+ cc.find_library('intl')
|
||||
+ ]
|
||||
+)
|
||||
|
||||
- all_qga += qga_vss
|
||||
-endif
|
||||
+all_qga += qga_vss
|
||||
|
||||
# rules to build qga-vss.tlb
|
||||
# Currently, only native build is supported because building .tlb
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,25 +0,0 @@
|
||||
From 66fc295c9a2e29d04fafe729a384e321a347eca3 Mon Sep 17 00:00:00 2001
|
||||
From: Kostiantyn Kostiuk <konstantin@daynix.com>
|
||||
Date: Tue, 20 Jul 2021 17:19:34 +0000
|
||||
Subject: [PATCH 1/2] qga: Log version on start
|
||||
|
||||
Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,70 +0,0 @@
|
||||
From 4eb0bed855a3f2001a3438a58933164046eefb88 Mon Sep 17 00:00:00 2001
|
||||
From: Kostiantyn Kostiuk <konstantin@daynix.com>
|
||||
Date: Tue, 14 Sep 2021 10:28:44 +0000
|
||||
Subject: [PATCH 1/2] qga-win: Detect OS based on Windows 10 by first build
|
||||
number
|
||||
|
||||
Windows Server 2016, 2019, 2022 are based on Windows 10 and
|
||||
have the same major and minor versions. So, the only way to
|
||||
detect the proper version is to use the build number.
|
||||
|
||||
Before this commit, the guest agent use the last build number
|
||||
for each OS, but it causes problems when new OS releases.
|
||||
There are few preview versions before release, and we
|
||||
can't update this list.
|
||||
|
||||
After this commit, the guest agent will use the first build
|
||||
number. For each new preview version or release version,
|
||||
Microsoft increases the build number, so we can add the number
|
||||
of the first preview build and this will work until the new
|
||||
OS release.
|
||||
|
||||
Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
|
||||
---
|
||||
qga/commands-win32.c | 18 +++++++++++-------
|
||||
1 file changed, 11 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||||
index 4e84afd83b..a8e9d40b31 100644
|
||||
--- a/qga/commands-win32.c
|
||||
+++ b/qga/commands-win32.c
|
||||
@@ -2179,7 +2179,7 @@ static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2][8] = {
|
||||
};
|
||||
|
||||
typedef struct _ga_win_10_0_server_t {
|
||||
- int final_build;
|
||||
+ int first_build;
|
||||
char const *version;
|
||||
char const *version_id;
|
||||
} ga_win_10_0_server_t;
|
||||
@@ -2219,18 +2219,22 @@ static char *ga_get_win_name(OSVERSIONINFOEXW const *os_version, bool id)
|
||||
int tbl_idx = (os_version->wProductType != VER_NT_WORKSTATION);
|
||||
ga_matrix_lookup_t const *table = WIN_VERSION_MATRIX[tbl_idx];
|
||||
ga_win_10_0_server_t const *win_10_0_table = WIN_10_0_SERVER_VERSION_MATRIX;
|
||||
+ ga_win_10_0_server_t const *win_10_0_version = NULL;
|
||||
while (table->version != NULL) {
|
||||
if (major == 10 && minor == 0 && tbl_idx) {
|
||||
while (win_10_0_table->version != NULL) {
|
||||
- if (build <= win_10_0_table->final_build) {
|
||||
- if (id) {
|
||||
- return g_strdup(win_10_0_table->version_id);
|
||||
- } else {
|
||||
- return g_strdup(win_10_0_table->version);
|
||||
- }
|
||||
+ if (build >= win_10_0_table->first_build) {
|
||||
+ win_10_0_version = win_10_0_table;
|
||||
}
|
||||
win_10_0_table++;
|
||||
}
|
||||
+ if (win_10_0_table) {
|
||||
+ if (id) {
|
||||
+ return g_strdup(win_10_0_version->version_id);
|
||||
+ } else {
|
||||
+ return g_strdup(win_10_0_version->version);
|
||||
+ }
|
||||
+ }
|
||||
} else if (major == table->major && minor == table->minor) {
|
||||
if (id) {
|
||||
return g_strdup(table->version_id);
|
||||
--
|
||||
2.33.0
|
@ -1,75 +0,0 @@
|
||||
From a956c1a2ab36a221c0a5dc7cd474ac86f4033983 Mon Sep 17 00:00:00 2001
|
||||
From: Kostiantyn Kostiuk <konstantin@daynix.com>
|
||||
Date: Tue, 20 Jul 2021 17:22:18 +0000
|
||||
Subject: [PATCH 2/2] qga: get_pci_info leak fix
|
||||
|
||||
Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
|
||||
---
|
||||
qga/commands-win32.c | 25 +++++++++++++++++++++----
|
||||
1 file changed, 21 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||||
index 300b87c859..cf6d46361a 100644
|
||||
--- a/qga/commands-win32.c
|
||||
+++ b/qga/commands-win32.c
|
||||
@@ -514,7 +514,10 @@ DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,
|
||||
|
||||
static GuestPCIAddress *get_pci_info(int number, Error **errp)
|
||||
{
|
||||
- HDEVINFO dev_info;
|
||||
+ HDEVINFO dev_info = INVALID_HANDLE_VALUE;
|
||||
+ HDEVINFO parent_dev_info = INVALID_HANDLE_VALUE;
|
||||
+ char *parent_dev_id = NULL;
|
||||
+
|
||||
SP_DEVINFO_DATA dev_info_data;
|
||||
SP_DEVICE_INTERFACE_DATA dev_iface_data;
|
||||
HANDLE dev_file;
|
||||
@@ -541,8 +544,6 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp)
|
||||
for (i = 0; SetupDiEnumDeviceInfo(dev_info, i, &dev_info_data); i++) {
|
||||
PSP_DEVICE_INTERFACE_DETAIL_DATA pdev_iface_detail_data = NULL;
|
||||
STORAGE_DEVICE_NUMBER sdn;
|
||||
- char *parent_dev_id = NULL;
|
||||
- HDEVINFO parent_dev_info;
|
||||
SP_DEVINFO_DATA parent_dev_info_data;
|
||||
DWORD j;
|
||||
DWORD size = 0;
|
||||
@@ -657,6 +658,7 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp)
|
||||
SetupDiGetClassDevs(&GUID_DEVINTERFACE_STORAGEPORT, parent_dev_id,
|
||||
NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
|
||||
g_free(parent_dev_id);
|
||||
+ parent_dev_id = NULL;
|
||||
|
||||
if (parent_dev_info == INVALID_HANDLE_VALUE) {
|
||||
error_setg_win32(errp, GetLastError(),
|
||||
@@ -745,12 +747,27 @@ static GuestPCIAddress *get_pci_info(int number, Error **errp)
|
||||
}
|
||||
}
|
||||
SetupDiDestroyDeviceInfoList(parent_dev_info);
|
||||
+ parent_dev_info = INVALID_HANDLE_VALUE;
|
||||
break;
|
||||
}
|
||||
|
||||
free_dev_info:
|
||||
- SetupDiDestroyDeviceInfoList(dev_info);
|
||||
out:
|
||||
+ if (parent_dev_id != NULL) {
|
||||
+ g_debug("get_pci_info: parent_dev_id pointer present");
|
||||
+ g_free(parent_dev_id);
|
||||
+ }
|
||||
+
|
||||
+ if (dev_info != INVALID_HANDLE_VALUE) {
|
||||
+ g_debug("get_pci_info: dev_info handle present");
|
||||
+ SetupDiDestroyDeviceInfoList(dev_info);
|
||||
+ }
|
||||
+
|
||||
+ if (parent_dev_info != INVALID_HANDLE_VALUE) {
|
||||
+ g_debug("get_pci_info: parent_dev_info handle present");
|
||||
+ SetupDiDestroyDeviceInfoList(parent_dev_info);
|
||||
+ }
|
||||
+
|
||||
return pci;
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,92 +0,0 @@
|
||||
From e84e2d323069501ea21e780b99c99f24370fa79f Mon Sep 17 00:00:00 2001
|
||||
From: Kostiantyn Kostiuk <konstantin@daynix.com>
|
||||
Date: Tue, 14 Sep 2021 10:58:13 +0000
|
||||
Subject: [PATCH 2/2] qga-win: Detect Windows 11 by build number
|
||||
|
||||
Windows 10 and 11 have the same major and minor versions.
|
||||
So, the only way to determine the correct version is to
|
||||
use the build number.
|
||||
|
||||
After this commit, the guest agent will return the proper
|
||||
"version" and "version-id" for Windows 11. The "pretty-name"
|
||||
is read from the registry and will be incorrect until the
|
||||
MS updates the registry. We only can create some workaround
|
||||
and replace 10 to 11.
|
||||
|
||||
Signed-off-by: Kostiantyn Kostiuk <konstantin@daynix.com>
|
||||
---
|
||||
qga/commands-win32.c | 23 ++++++++++++++---------
|
||||
1 file changed, 14 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||||
index a8e9d40b31..f9ac1c31f5 100644
|
||||
--- a/qga/commands-win32.c
|
||||
+++ b/qga/commands-win32.c
|
||||
@@ -2154,7 +2154,7 @@ typedef struct _ga_matrix_lookup_t {
|
||||
char const *version_id;
|
||||
} ga_matrix_lookup_t;
|
||||
|
||||
-static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2][8] = {
|
||||
+static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2][7] = {
|
||||
{
|
||||
/* Desktop editions */
|
||||
{ 5, 0, "Microsoft Windows 2000", "2000"},
|
||||
@@ -2163,7 +2163,6 @@ static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2][8] = {
|
||||
{ 6, 1, "Microsoft Windows 7" "7"},
|
||||
{ 6, 2, "Microsoft Windows 8", "8"},
|
||||
{ 6, 3, "Microsoft Windows 8.1", "8.1"},
|
||||
- {10, 0, "Microsoft Windows 10", "10"},
|
||||
{ 0, 0, 0}
|
||||
},{
|
||||
/* Server editions */
|
||||
@@ -2173,24 +2172,29 @@ static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2][8] = {
|
||||
{ 6, 2, "Microsoft Windows Server 2012", "2012"},
|
||||
{ 6, 3, "Microsoft Windows Server 2012 R2", "2012r2"},
|
||||
{ 0, 0, 0},
|
||||
- { 0, 0, 0},
|
||||
{ 0, 0, 0}
|
||||
}
|
||||
};
|
||||
|
||||
-typedef struct _ga_win_10_0_server_t {
|
||||
+typedef struct _ga_win_10_0_t {
|
||||
int first_build;
|
||||
char const *version;
|
||||
char const *version_id;
|
||||
-} ga_win_10_0_server_t;
|
||||
+} ga_win_10_0_t;
|
||||
|
||||
-static ga_win_10_0_server_t const WIN_10_0_SERVER_VERSION_MATRIX[4] = {
|
||||
+static ga_win_10_0_t const WIN_10_0_SERVER_VERSION_MATRIX[4] = {
|
||||
{14393, "Microsoft Windows Server 2016", "2016"},
|
||||
{17763, "Microsoft Windows Server 2019", "2019"},
|
||||
{20344, "Microsoft Windows Server 2022", "2022"},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
+static ga_win_10_0_t const WIN_10_0_CLIENT_VERSION_MATRIX[3] = {
|
||||
+ {10240, "Microsoft Windows 10", "10"},
|
||||
+ {22000, "Microsoft Windows 11", "11"},
|
||||
+ {0, 0}
|
||||
+};
|
||||
+
|
||||
static void ga_get_win_version(RTL_OSVERSIONINFOEXW *info, Error **errp)
|
||||
{
|
||||
typedef NTSTATUS(WINAPI *rtl_get_version_t)(
|
||||
@@ -2218,10 +2222,11 @@ static char *ga_get_win_name(OSVERSIONINFOEXW const *os_version, bool id)
|
||||
DWORD build = os_version->dwBuildNumber;
|
||||
int tbl_idx = (os_version->wProductType != VER_NT_WORKSTATION);
|
||||
ga_matrix_lookup_t const *table = WIN_VERSION_MATRIX[tbl_idx];
|
||||
- ga_win_10_0_server_t const *win_10_0_table = WIN_10_0_SERVER_VERSION_MATRIX;
|
||||
- ga_win_10_0_server_t const *win_10_0_version = NULL;
|
||||
+ ga_win_10_0_t const *win_10_0_table = tbl_idx ?
|
||||
+ WIN_10_0_SERVER_VERSION_MATRIX : WIN_10_0_CLIENT_VERSION_MATRIX;
|
||||
+ ga_win_10_0_t const *win_10_0_version = NULL;
|
||||
while (table->version != NULL) {
|
||||
- if (major == 10 && minor == 0 && tbl_idx) {
|
||||
+ if (major == 10 && minor == 0) {
|
||||
while (win_10_0_table->version != NULL) {
|
||||
if (build >= win_10_0_table->first_build) {
|
||||
win_10_0_version = win_10_0_table;
|
||||
--
|
||||
2.25.1
|
@ -1,5 +0,0 @@
|
||||
QEMU_GA_MANUFACTURER="RedHat" QEMU_GA_DISTRO="RHEL" QEMU_GA_VERSION="103.0.0" ./configure \
|
||||
--disable-docs \
|
||||
--enable-guest-agent \
|
||||
--disable-zlib-test \
|
||||
"$@"
|
@ -1,55 +1,60 @@
|
||||
%{?mingw_package_header}
|
||||
|
||||
%define with_vss 1
|
||||
%define qemu_version 6.2.0
|
||||
%define qemu_version 9.0.0
|
||||
%define ga_manufacturer "RedHat"
|
||||
%define ga_distro "RHEL"
|
||||
|
||||
Name: mingw-qemu-ga-win
|
||||
Version: 103.0.0
|
||||
Version: 108.0.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Qemus Guest agent for Windows
|
||||
|
||||
Group: System Environment/Daemons
|
||||
License: GPLv2+ and LGPLv2+ and BSD
|
||||
License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND FSFAP AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-2.0-or-later WITH GCC-exception-2.0 AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND MIT AND LicenseRef-Fedora-Public-Domain AND CC-BY-3.0
|
||||
URL: http://www.qemu.org/
|
||||
Requires(post): system-units
|
||||
Requires(post): systemd-units
|
||||
Requires(preun): systemd-units
|
||||
Requires(postun): systemd-units
|
||||
Source0: http://wiki.qemu.org/download/qemu-%{qemu_version}.tar.bz2
|
||||
Source1: build_configure.sh
|
||||
%if %{with_vss}
|
||||
Source2: VSSSDK72.tar.gz
|
||||
%endif
|
||||
|
||||
Patch0001: 0001-Change-Version.patch
|
||||
Patch0002: 0001-qga-Log-version-on-start.patch
|
||||
Patch0003: 0002-qga-get_pci_info-leak-fix.patch
|
||||
Patch0004: 0001-qga-win-Detect-OS-based-on-Windows-10-by-first-build.patch
|
||||
Patch0005: 0002-qga-win-Detect-Windows-11-by-build-number.patch
|
||||
Patch0006: 0001-Remove-redundant-GUID-definitions.patch
|
||||
Patch0007: 0001-meson-do-not-make-qga-vss-win32-meson.build-conditio.patch
|
||||
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
Provides: bundled(mingw-gcc)
|
||||
Provides: bundled(mingw-gcc-c++)
|
||||
Provides: bundled(mingw-gettext)
|
||||
Provides: bundled(mingw-glib2)
|
||||
Provides: bundled(mingw-pcre)
|
||||
Provides: qemu-ga-win = %{version}
|
||||
Obsoletes: qemu-ga-win < 105.0.0
|
||||
# based on https://gitlab.com/qemu-project/qemu/-/blob/v7.1.0/qga/installer/qemu-ga.wxs
|
||||
|
||||
BuildRequires: libtool
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: gettext
|
||||
BuildRequires: gettext-devel
|
||||
BuildRequires: mingw32-pixman
|
||||
BuildRequires: mingw64-pixman
|
||||
BuildRequires: mingw32-pixman >= 0.42.2
|
||||
BuildRequires: mingw64-pixman >= 0.42.2
|
||||
BuildRequires: mingw32-gcc >= 7.4.0
|
||||
BuildRequires: mingw32-gcc-c++ >= 7.4.0
|
||||
BuildRequires: mingw64-gcc >= 7.4.0
|
||||
BuildRequires: mingw32-glib2
|
||||
BuildRequires: mingw64-glib2
|
||||
BuildRequires: mingw64-headers
|
||||
BuildRequires: mingw32-headers
|
||||
BuildRequires: mingw64-gcc-c++ >= 7.4.0
|
||||
BuildRequires: mingw32-glib2 >= 2.78.0
|
||||
BuildRequires: mingw64-glib2 >= 2.78.0
|
||||
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 Guest Agent for Windows.
|
||||
|
||||
qemu-kvm is an open source virtualizer that provides hardware emulation for
|
||||
the KVM hypervisor.
|
||||
|
||||
@ -58,80 +63,136 @@ 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
|
||||
%patch0007 -p1
|
||||
|
||||
%build
|
||||
|
||||
cp %{SOURCE1} build_configure.sh
|
||||
%if %{with_vss}
|
||||
pwd
|
||||
tar -zxvf %{SOURCE2}
|
||||
ls VSSSDK72
|
||||
%endif
|
||||
#Build for Win32
|
||||
|
||||
%{mingw32_env}
|
||||
./build_configure.sh \
|
||||
--target-list=x86_64-softmmu \
|
||||
--cross-prefix=i686-w64-mingw32- \
|
||||
--enable-guest-agent-msi \
|
||||
%if %{with_vss}
|
||||
--with-vss-sdk=%{_builddir}/qemu-%{qemu_version}/VSSSDK72 \
|
||||
%endif
|
||||
|| cat %{_builddir}/qemu-%{qemu_version}/build/config.log
|
||||
|
||||
make qemu-ga
|
||||
|
||||
mkdir ../build_win32
|
||||
#cp build/qga/qemu-ga.exe ../build_win32
|
||||
cp build/qga/qemu-ga-i386.msi ../build_win32
|
||||
|
||||
#Build for Win64
|
||||
|
||||
%{mingw64_env}
|
||||
./build_configure.sh \
|
||||
--target-list=x86_64-softmmu \
|
||||
--cross-prefix=x86_64-w64-mingw32- \
|
||||
--enable-guest-agent-msi \
|
||||
%if %{with_vss}
|
||||
--with-vss-sdk=%{_builddir}/qemu-%{qemu_version}/VSSSDK72 \
|
||||
%endif
|
||||
|| cat %{_builddir}/qemu-%{qemu_version}/build/config.log
|
||||
|
||||
make qemu-ga
|
||||
|
||||
mkdir ../build_win64
|
||||
#cp build/qga/qemu-ga.exe ../build_win64
|
||||
cp build/qga/qemu-ga-x86_64.msi ../build_win64
|
||||
|
||||
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-system \
|
||||
--disable-user \
|
||||
--cross-prefix=i686-w64-mingw32- \
|
||||
--enable-guest-agent \
|
||||
--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_win32$MINGW_BUILDDIR_SUFFIX"/qemu-ga* $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-system \
|
||||
--disable-user \
|
||||
--cross-prefix=x86_64-w64-mingw32- \
|
||||
--enable-guest-agent \
|
||||
--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_win64$MINGW_BUILDDIR_SUFFIX"/qemu-ga* $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
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%{mingw32_bindir}/qemu-ga*
|
||||
%{mingw64_bindir}/qemu-ga*
|
||||
|
||||
%changelog
|
||||
* Mon Jul 1 2024 Konstantin Kostiuk <kkostiuk@redhat.com> 108.0.2
|
||||
- RHEL-45598 - Set version to 108.0.2
|
||||
|
||||
* Tue Apr 30 2024 Konstantin Kostiuk <kkostiuk@redhat.com> 108.0.1
|
||||
- Set version to 108.0.1
|
||||
- RHEL-34770 - Gatting rpminspect SPDX license expressions validate failed
|
||||
|
||||
* Wed Apr 24 2024 Konstantin Kostiuk <kkostiuk@redhat.com> 108.0.0
|
||||
- Set version to 108.0.0
|
||||
- RHEL-23026 - Rebase qemu-ga to 9.0.0
|
||||
|
||||
* Mon Apr 1 2024 Dehan Meng <demeng@redhat.com> 107.0.2
|
||||
- Set version to 107.0.2
|
||||
- RHEL-26205 - [QGA] Add Windows Server 2025 to guest-osinfo command
|
||||
|
||||
* Mon Jan 15 2024 Konstantin Kostiuk <kkostiuk@redhat.com> 107.0.1
|
||||
- Set version to 107.0.1
|
||||
- RHEL-21655 - Fix mingw-qemu-ga-win licenses
|
||||
|
||||
* Mon Jan 15 2024 Konstantin Kostiuk <kkostiuk@redhat.com> 107.0.0
|
||||
- Set version to 107.0.0
|
||||
- RHEL-15491 - Rebase qemu-ga to 8.2.0
|
||||
|
||||
* Mon Jul 10 2023 Konstantin Kostiuk <kkostiuk@redhat.com> 106.0.1
|
||||
- Set version to 106.0.1
|
||||
- RHELPLAN-147763 - [mingw-qemu-ga-win] VSS DLL: Add logging mechanism
|
||||
- RHEL-581 - Use the SPDX vocabulary to specify the license
|
||||
|
||||
* Sun Apr 23 2023 Konstantin Kostiuk <kkostiuk@redhat.com> 106.0.0
|
||||
- Set version to 106.0.0
|
||||
- RHEL-408 - Add provides, obsoletes for mingw-qemu-ga-win
|
||||
- RHEL-385 - Rebase mingw-qemu-ga-win to QEMU 8.0
|
||||
|
||||
* Wed Feb 15 2023 Konstantin Kostiuk <kkostiuk@redhat.com> 105.0.4
|
||||
- Set version to 105.0.4
|
||||
- BZ#2167436
|
||||
|
||||
* Mon Dec 26 2022 Konstantin Kostiuk <kkostiuk@redhat.com> 105.0.3
|
||||
- Set version to 105.0.3
|
||||
- BZ#2090250 - mingw-qemu-ga-win: Add Provides: bundled() to rpm packages [rhel-9]
|
||||
|
||||
* Tue Dec 6 2022 Konstantin Kostiuk <kkostiuk@redhat.com> 105.0.2
|
||||
- Set version to 105.0.2
|
||||
- Fix wrong requires
|
||||
- Fix missing patch0002
|
||||
- Remove extra Summary
|
||||
- BZ#2090333 - [mingw-qemu-ga-win] qga command 'guest-get-fsinfo' can't query bus-type of USB
|
||||
|
||||
* Tue Dec 6 2022 Konstantin Kostiuk <kkostiuk@redhat.com> 105.0.1
|
||||
- Set version to 105.0.1
|
||||
- Remove redundant package
|
||||
- BZ#2090333 - [mingw-qemu-ga-win] qga command 'guest-get-fsinfo' can't query bus-type of USB
|
||||
|
||||
* Mon Oct 24 2022 Konstantin Kostiuk <kkostiuk@redhat.com> 105.0.0
|
||||
- Set version to 105.0.0
|
||||
- BZ#2137262 - qemu-ga-win: Rebase qemu-ga to 7.1.0
|
||||
|
||||
* Tue May 17 2022 Konstantin Kostiuk <kkostiuk@redhat.com> 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 <kkostiuk@redhat.com> 104.0.1
|
||||
- Set version to 104.0.1
|
||||
- BZ#2084493 - qemu-ga can't be installed
|
||||
|
||||
* Mon Apr 25 2022 Konstantin Kostiuk <kkostiuk@redhat.com> 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 <kkostiuk@redhat.com> 103.0.0
|
||||
- Set version to 103.0.0
|
||||
- BZ#1992643 - Add mingw-qemu-ga-win package to CentOS stream
|
||||
|
Loading…
Reference in New Issue
Block a user