diff mbox series

[for-6.1] qga-win/msi: fix missing libstdc++-6 DLL in MSI installer

Message ID 20210803043536.1071251-1-michael.roth@amd.com
State New
Headers show
Series [for-6.1] qga-win/msi: fix missing libstdc++-6 DLL in MSI installer | expand

Commit Message

Michael Roth Aug. 3, 2021, 4:35 a.m. UTC
libstdc++ is required for the qga-vss.dll that provides fsfreeze
functionality. Currently it is not provided by the MSI installer,
resulting in fsfreeze being disabled in guest environments where it has
not been installed by other means.

In the future this would be better handled via gcc-cpp ComponentGroup
provided by msitools, but that would be better handled with a general
rework of DLL dependency handling in the installer build. Keep it
simple for now to fix this regression.

Tested with Fedora 34 mingw build environment.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Kostiantyn Kostiuk <konstantin@daynix.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
---
 qga/installer/qemu-ga.wxs | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Marc-André Lureau Aug. 3, 2021, 7:14 a.m. UTC | #1
On Tue, Aug 3, 2021 at 8:36 AM Michael Roth <michael.roth@amd.com> wrote:

> libstdc++ is required for the qga-vss.dll that provides fsfreeze
> functionality. Currently it is not provided by the MSI installer,
> resulting in fsfreeze being disabled in guest environments where it has
> not been installed by other means.
>
> In the future this would be better handled via gcc-cpp ComponentGroup
> provided by msitools, but that would be better handled with a general
> rework of DLL dependency handling in the installer build. Keep it
> simple for now to fix this regression.
>
> Tested with Fedora 34 mingw build environment.
>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Kostiantyn Kostiuk <konstantin@daynix.com>
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
> Signed-off-by: Michael Roth <michael.roth@amd.com>
>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

---
>  qga/installer/qemu-ga.wxs | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs
> index ce7b25b5e1..0950e8c6be 100644
> --- a/qga/installer/qemu-ga.wxs
> +++ b/qga/installer/qemu-ga.wxs
> @@ -84,6 +84,9 @@
>              <ServiceControl Id="StartService" Start="install" Stop="both"
> Remove="uninstall" Name="QEMU-GA" Wait="yes" />
>            </Component>
>            <?ifdef var.InstallVss?>
> +          <Component Id="libstdc++_6_lib"
> Guid="{55E737B5-9127-4A11-9FC3-A29367714574}">
> +            <File Id="libstdc++-6.lib" Name="libstdc++-6.dll"
> Source="$(var.Mingw_bin)/libstdc++-6.dll" KeyPath="yes" DiskId="1"/>
> +          </Component>
>            <Component Id="qga_vss_dll"
> Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}">
>              <File Id="qga_vss.dll" Name="qga-vss.dll"
> Source="$(env.BUILD_DIR)/qga/vss-win32/qga-vss.dll" KeyPath="yes"
> DiskId="1"/>
>            </Component>
> @@ -164,6 +167,7 @@
>      <Feature Id="QEMUFeature" Title="QEMU Guest Agent" Level="1">
>        <ComponentRef Id="qemu_ga" />
>        <?ifdef var.InstallVss?>
> +      <ComponentRef Id="libstdc++_6_lib" />
>        <ComponentRef Id="qga_vss_dll" />
>        <ComponentRef Id="qga_vss_tlb" />
>        <?endif?>
> --
> 2.25.1
>
>
diff mbox series

Patch

diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs
index ce7b25b5e1..0950e8c6be 100644
--- a/qga/installer/qemu-ga.wxs
+++ b/qga/installer/qemu-ga.wxs
@@ -84,6 +84,9 @@ 
             <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="QEMU-GA" Wait="yes" />
           </Component>
           <?ifdef var.InstallVss?>
+          <Component Id="libstdc++_6_lib" Guid="{55E737B5-9127-4A11-9FC3-A29367714574}">
+            <File Id="libstdc++-6.lib" Name="libstdc++-6.dll" Source="$(var.Mingw_bin)/libstdc++-6.dll" KeyPath="yes" DiskId="1"/>
+          </Component>
           <Component Id="qga_vss_dll" Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}">
             <File Id="qga_vss.dll" Name="qga-vss.dll" Source="$(env.BUILD_DIR)/qga/vss-win32/qga-vss.dll" KeyPath="yes" DiskId="1"/>
           </Component>
@@ -164,6 +167,7 @@ 
     <Feature Id="QEMUFeature" Title="QEMU Guest Agent" Level="1">
       <ComponentRef Id="qemu_ga" />
       <?ifdef var.InstallVss?>
+      <ComponentRef Id="libstdc++_6_lib" />
       <ComponentRef Id="qga_vss_dll" />
       <ComponentRef Id="qga_vss_tlb" />
       <?endif?>