Add support for Windows 2025 for QGA
Resolves: RHEL-26205 - [QGA] Add Windows Server 2025 to guest-osinfo command Signed-off-by: Dehan Meng <demeng@redhat.com>
This commit is contained in:
parent
417611a171
commit
6f89efa076
@ -14,6 +14,6 @@ index 91ff57278e..586de296f5 100644
|
|||||||
+++ b/VERSION
|
+++ b/VERSION
|
||||||
@@ -1 +1 @@
|
@@ -1 +1 @@
|
||||||
-8.2.0
|
-8.2.0
|
||||||
+107.0.1
|
+107.0.2
|
||||||
--
|
--
|
||||||
2.17.2
|
2.17.2
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
%define ga_distro "RHEL"
|
%define ga_distro "RHEL"
|
||||||
|
|
||||||
Name: mingw-qemu-ga-win
|
Name: mingw-qemu-ga-win
|
||||||
Version: 107.0.1
|
Version: 107.0.2
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Qemus Guest agent for Windows
|
Summary: Qemus Guest agent for Windows
|
||||||
|
|
||||||
@ -19,6 +19,7 @@ Requires(postun): systemd-units
|
|||||||
Source0: http://wiki.qemu.org/download/qemu-%{qemu_version}.tar.bz2
|
Source0: http://wiki.qemu.org/download/qemu-%{qemu_version}.tar.bz2
|
||||||
|
|
||||||
Patch0001: 0001-Change-Version.patch
|
Patch0001: 0001-Change-Version.patch
|
||||||
|
Patch0002: v4_20240304_kkostiuk_qga_commands_win32_style_cleanups_before_adding_windows_server_2025.mbx
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
@ -66,6 +67,7 @@ This package does not need to be installed on the host OS.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n qemu-%{qemu_version}
|
%setup -q -n qemu-%{qemu_version}
|
||||||
%patch0001 -p1
|
%patch0001 -p1
|
||||||
|
%patch0002 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -122,6 +124,10 @@ cp build/qga/qemu-ga-x86_64.msi $RPM_BUILD_ROOT%{mingw64_bindir}
|
|||||||
%{mingw64_bindir}/qemu-ga*
|
%{mingw64_bindir}/qemu-ga*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* 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
|
* Mon Jan 15 2024 Konstantin Kostiuk <kkostiuk@redhat.com> 107.0.1
|
||||||
- Set version to 107.0.1
|
- Set version to 107.0.1
|
||||||
- RHEL-21655 - Fix mingw-qemu-ga-win licenses
|
- RHEL-21655 - Fix mingw-qemu-ga-win licenses
|
||||||
|
@ -0,0 +1,253 @@
|
|||||||
|
From git@z Thu Jan 1 00:00:00 1970
|
||||||
|
Subject: [PATCH v4 1/3] qga/commands-win32: Declare const qualifier before
|
||||||
|
type
|
||||||
|
From: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Date: Mon, 04 Mar 2024 15:45:30 +0200
|
||||||
|
Message-Id: <20240304134532.28506-2-kkostiuk@redhat.com>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Most of the code base use the 'const' qualifier *before*
|
||||||
|
the type being qualified. Use the same style to unify.
|
||||||
|
|
||||||
|
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Message-ID: <20240222152835.72095-2-philmd@linaro.org>
|
||||||
|
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
|
||||||
|
---
|
||||||
|
qga/commands-win32.c | 22 +++++++++++-----------
|
||||||
|
1 file changed, 11 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||||||
|
index a1015757d8..79b5a580c9 100644
|
||||||
|
--- a/qga/commands-win32.c
|
||||||
|
+++ b/qga/commands-win32.c
|
||||||
|
@@ -2120,11 +2120,11 @@ GuestUserList *qmp_guest_get_users(Error **errp)
|
||||||
|
typedef struct _ga_matrix_lookup_t {
|
||||||
|
int major;
|
||||||
|
int minor;
|
||||||
|
- char const *version;
|
||||||
|
- char const *version_id;
|
||||||
|
+ const char *version;
|
||||||
|
+ const char *version_id;
|
||||||
|
} ga_matrix_lookup_t;
|
||||||
|
|
||||||
|
-static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2][7] = {
|
||||||
|
+static const ga_matrix_lookup_t WIN_VERSION_MATRIX[2][7] = {
|
||||||
|
{
|
||||||
|
/* Desktop editions */
|
||||||
|
{ 5, 0, "Microsoft Windows 2000", "2000"},
|
||||||
|
@@ -2148,18 +2148,18 @@ static ga_matrix_lookup_t const WIN_VERSION_MATRIX[2][7] = {
|
||||||
|
|
||||||
|
typedef struct _ga_win_10_0_t {
|
||||||
|
int first_build;
|
||||||
|
- char const *version;
|
||||||
|
- char const *version_id;
|
||||||
|
+ const char *version;
|
||||||
|
+ const char *version_id;
|
||||||
|
} ga_win_10_0_t;
|
||||||
|
|
||||||
|
-static ga_win_10_0_t const WIN_10_0_SERVER_VERSION_MATRIX[4] = {
|
||||||
|
+static const ga_win_10_0_t 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] = {
|
||||||
|
+static const ga_win_10_0_t WIN_10_0_CLIENT_VERSION_MATRIX[3] = {
|
||||||
|
{10240, "Microsoft Windows 10", "10"},
|
||||||
|
{22000, "Microsoft Windows 11", "11"},
|
||||||
|
{0, 0}
|
||||||
|
@@ -2185,16 +2185,16 @@ static void ga_get_win_version(RTL_OSVERSIONINFOEXW *info, Error **errp)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static char *ga_get_win_name(OSVERSIONINFOEXW const *os_version, bool id)
|
||||||
|
+static char *ga_get_win_name(const OSVERSIONINFOEXW *os_version, bool id)
|
||||||
|
{
|
||||||
|
DWORD major = os_version->dwMajorVersion;
|
||||||
|
DWORD minor = os_version->dwMinorVersion;
|
||||||
|
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_t const *win_10_0_table = tbl_idx ?
|
||||||
|
+ const ga_matrix_lookup_t *table = WIN_VERSION_MATRIX[tbl_idx];
|
||||||
|
+ const ga_win_10_0_t *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;
|
||||||
|
+ const ga_win_10_0_t *win_10_0_version = NULL;
|
||||||
|
while (table->version != NULL) {
|
||||||
|
if (major == 10 && minor == 0) {
|
||||||
|
while (win_10_0_table->version != NULL) {
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
||||||
|
From git@z Thu Jan 1 00:00:00 1970
|
||||||
|
Subject: [PATCH v4 2/3] qga/commands-win32: Do not set
|
||||||
|
matrix_lookup_t/win_10_0_t arrays size
|
||||||
|
From: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Date: Mon, 04 Mar 2024 15:45:31 +0200
|
||||||
|
Message-Id: <20240304134532.28506-3-kkostiuk@redhat.com>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
ga_get_win_name() iterates over all elements in the arrays by
|
||||||
|
checking the 'version' field is non-NULL. Since the arrays are
|
||||||
|
guarded by a NULL terminating element, we don't need to specify
|
||||||
|
their size:
|
||||||
|
|
||||||
|
static char *ga_get_win_name(...)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
const ga_matrix_lookup_t *table = WIN_VERSION_MATRIX[tbl_idx];
|
||||||
|
const ga_win_10_0_t *win_10_0_table = ...
|
||||||
|
...
|
||||||
|
while (table->version != NULL) {
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
while (win_10_0_table->version != NULL) {
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This will simplify maintenance when adding new entries to these
|
||||||
|
arrays.
|
||||||
|
|
||||||
|
Split WIN_VERSION_MATRIX into WIN_CLIENT_VERSION_MATRIX and
|
||||||
|
WIN_SERVER_VERSION_MATRIX because multidimensional array must
|
||||||
|
have bounds for all dimensions except the first.
|
||||||
|
|
||||||
|
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Message-ID: <20240222152835.72095-3-philmd@linaro.org>
|
||||||
|
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
|
||||||
|
---
|
||||||
|
qga/commands-win32.c | 52 +++++++++++++++++++++-----------------------
|
||||||
|
1 file changed, 25 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||||||
|
index 79b5a580c9..a830f1494e 100644
|
||||||
|
--- a/qga/commands-win32.c
|
||||||
|
+++ b/qga/commands-win32.c
|
||||||
|
@@ -2124,45 +2124,42 @@ typedef struct _ga_matrix_lookup_t {
|
||||||
|
const char *version_id;
|
||||||
|
} ga_matrix_lookup_t;
|
||||||
|
|
||||||
|
-static const ga_matrix_lookup_t WIN_VERSION_MATRIX[2][7] = {
|
||||||
|
- {
|
||||||
|
- /* Desktop editions */
|
||||||
|
- { 5, 0, "Microsoft Windows 2000", "2000"},
|
||||||
|
- { 5, 1, "Microsoft Windows XP", "xp"},
|
||||||
|
- { 6, 0, "Microsoft Windows Vista", "vista"},
|
||||||
|
- { 6, 1, "Microsoft Windows 7" "7"},
|
||||||
|
- { 6, 2, "Microsoft Windows 8", "8"},
|
||||||
|
- { 6, 3, "Microsoft Windows 8.1", "8.1"},
|
||||||
|
- { 0, 0, 0}
|
||||||
|
- },{
|
||||||
|
- /* Server editions */
|
||||||
|
- { 5, 2, "Microsoft Windows Server 2003", "2003"},
|
||||||
|
- { 6, 0, "Microsoft Windows Server 2008", "2008"},
|
||||||
|
- { 6, 1, "Microsoft Windows Server 2008 R2", "2008r2"},
|
||||||
|
- { 6, 2, "Microsoft Windows Server 2012", "2012"},
|
||||||
|
- { 6, 3, "Microsoft Windows Server 2012 R2", "2012r2"},
|
||||||
|
- { 0, 0, 0},
|
||||||
|
- { 0, 0, 0}
|
||||||
|
- }
|
||||||
|
+static const ga_matrix_lookup_t WIN_CLIENT_VERSION_MATRIX[] = {
|
||||||
|
+ { 5, 0, "Microsoft Windows 2000", "2000"},
|
||||||
|
+ { 5, 1, "Microsoft Windows XP", "xp"},
|
||||||
|
+ { 6, 0, "Microsoft Windows Vista", "vista"},
|
||||||
|
+ { 6, 1, "Microsoft Windows 7" "7"},
|
||||||
|
+ { 6, 2, "Microsoft Windows 8", "8"},
|
||||||
|
+ { 6, 3, "Microsoft Windows 8.1", "8.1"},
|
||||||
|
+ { }
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static const ga_matrix_lookup_t WIN_SERVER_VERSION_MATRIX[] = {
|
||||||
|
+ { 5, 2, "Microsoft Windows Server 2003", "2003"},
|
||||||
|
+ { 6, 0, "Microsoft Windows Server 2008", "2008"},
|
||||||
|
+ { 6, 1, "Microsoft Windows Server 2008 R2", "2008r2"},
|
||||||
|
+ { 6, 2, "Microsoft Windows Server 2012", "2012"},
|
||||||
|
+ { 6, 3, "Microsoft Windows Server 2012 R2", "2012r2"},
|
||||||
|
+ { },
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _ga_win_10_0_t {
|
||||||
|
int first_build;
|
||||||
|
- const char *version;
|
||||||
|
- const char *version_id;
|
||||||
|
+ char const *version;
|
||||||
|
+ char const *version_id;
|
||||||
|
} ga_win_10_0_t;
|
||||||
|
|
||||||
|
-static const ga_win_10_0_t WIN_10_0_SERVER_VERSION_MATRIX[4] = {
|
||||||
|
+static const ga_win_10_0_t WIN_10_0_SERVER_VERSION_MATRIX[] = {
|
||||||
|
{14393, "Microsoft Windows Server 2016", "2016"},
|
||||||
|
{17763, "Microsoft Windows Server 2019", "2019"},
|
||||||
|
{20344, "Microsoft Windows Server 2022", "2022"},
|
||||||
|
- {0, 0}
|
||||||
|
+ { }
|
||||||
|
};
|
||||||
|
|
||||||
|
-static const ga_win_10_0_t WIN_10_0_CLIENT_VERSION_MATRIX[3] = {
|
||||||
|
+static const ga_win_10_0_t WIN_10_0_CLIENT_VERSION_MATRIX[] = {
|
||||||
|
{10240, "Microsoft Windows 10", "10"},
|
||||||
|
{22000, "Microsoft Windows 11", "11"},
|
||||||
|
- {0, 0}
|
||||||
|
+ { }
|
||||||
|
};
|
||||||
|
|
||||||
|
static void ga_get_win_version(RTL_OSVERSIONINFOEXW *info, Error **errp)
|
||||||
|
@@ -2191,7 +2188,8 @@ static char *ga_get_win_name(const OSVERSIONINFOEXW *os_version, bool id)
|
||||||
|
DWORD minor = os_version->dwMinorVersion;
|
||||||
|
DWORD build = os_version->dwBuildNumber;
|
||||||
|
int tbl_idx = (os_version->wProductType != VER_NT_WORKSTATION);
|
||||||
|
- const ga_matrix_lookup_t *table = WIN_VERSION_MATRIX[tbl_idx];
|
||||||
|
+ const ga_matrix_lookup_t *table = tbl_idx ?
|
||||||
|
+ WIN_SERVER_VERSION_MATRIX : WIN_CLIENT_VERSION_MATRIX;
|
||||||
|
const ga_win_10_0_t *win_10_0_table = tbl_idx ?
|
||||||
|
WIN_10_0_SERVER_VERSION_MATRIX : WIN_10_0_CLIENT_VERSION_MATRIX;
|
||||||
|
const ga_win_10_0_t *win_10_0_version = NULL;
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
||||||
|
From git@z Thu Jan 1 00:00:00 1970
|
||||||
|
Subject: [PATCH v4 3/3] qga-win: Add support of Windows Server 2025 in
|
||||||
|
get-osinfo command
|
||||||
|
From: Dehan Meng <demeng@redhat.com>
|
||||||
|
Date: Mon, 04 Mar 2024 15:45:32 +0200
|
||||||
|
Message-Id: <20240304134532.28506-4-kkostiuk@redhat.com>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Add support of Windows Server 2025 in get-osinfo command
|
||||||
|
|
||||||
|
Signed-off-by: Dehan Meng <demeng@redhat.com>
|
||||||
|
Message-ID: <20240222152835.72095-4-philmd@linaro.org>
|
||||||
|
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
|
||||||
|
---
|
||||||
|
qga/commands-win32.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
|
||||||
|
index a830f1494e..d1cf1a87db 100644
|
||||||
|
--- a/qga/commands-win32.c
|
||||||
|
+++ b/qga/commands-win32.c
|
||||||
|
@@ -2153,6 +2153,7 @@ static const ga_win_10_0_t WIN_10_0_SERVER_VERSION_MATRIX[] = {
|
||||||
|
{14393, "Microsoft Windows Server 2016", "2016"},
|
||||||
|
{17763, "Microsoft Windows Server 2019", "2019"},
|
||||||
|
{20344, "Microsoft Windows Server 2022", "2022"},
|
||||||
|
+ {26040, "MIcrosoft Windows Server 2025", "2025"},
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user