mirror of https://github.com/xemu-project/xemu.git
qga-win: choose the right libpcre version to include in MSI package
According to GLib changelog [1], since version 2.73.2 GLib is using libpcre2 instead of libpcre. As a result, qemu-ga MSI installation fails due to missing DLL when linked with the newer GLib. This commit makes wixl to put the right libpcre version into the MSI bundle: either libpcre-1.dll or libpcre2-8-0.dll, depending on the present version of GLib. [1] https://gitlab.gnome.org/GNOME/glib/-/releases#2.73.2 Previous version: https://lists.nongnu.org/archive/html/qemu-trivial/2022-11/msg00237.html Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com> Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> Tested-by: Konstantin Kostiuk <kkostiuk@redhat.com> Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
This commit is contained in:
parent
8e86851bd6
commit
9ca180bce1
|
@ -101,9 +101,15 @@
|
||||||
<Component Id="libwinpthread" Guid="{6C117C78-0F47-4B07-8F34-6BEE11643829}">
|
<Component Id="libwinpthread" Guid="{6C117C78-0F47-4B07-8F34-6BEE11643829}">
|
||||||
<File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.BIN_DIR)/libwinpthread-1.dll" KeyPath="yes" DiskId="1"/>
|
<File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.BIN_DIR)/libwinpthread-1.dll" KeyPath="yes" DiskId="1"/>
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="libpcre" Guid="{7A86B45E-A009-489A-A849-CE3BACF03CD0}">
|
<?if $(var.LIBPCRE) = "libpcre1"?>
|
||||||
<File Id="libpcre_1.dll" Name="libpcre-1.dll" Source="$(var.BIN_DIR)/libpcre-1.dll" KeyPath="yes" DiskId="1"/>
|
<Component Id="libpcre" Guid="{7A86B45E-A009-489A-A849-CE3BACF03CD0}">
|
||||||
</Component>
|
<File Id="libpcre_1.dll" Name="libpcre-1.dll" Source="$(var.BIN_DIR)/libpcre-1.dll" KeyPath="yes" DiskId="1"/>
|
||||||
|
</Component>
|
||||||
|
<?else?>
|
||||||
|
<Component Id="libpcre" Guid="{F92A3804-B59C-419D-8F29-99A30352C156}">
|
||||||
|
<File Id="libpcre2_8_0.dll" Name="libpcre2-8-0.dll" Source="$(var.BIN_DIR)/libpcre2-8-0.dll" KeyPath="yes" DiskId="1"/>
|
||||||
|
</Component>
|
||||||
|
<?endif?>
|
||||||
<Component Id="registry_entries" Guid="{D075D109-51CA-11E3-9F8B-000C29858960}">
|
<Component Id="registry_entries" Guid="{D075D109-51CA-11E3-9F8B-000C29858960}">
|
||||||
<RegistryKey Root="HKLM"
|
<RegistryKey Root="HKLM"
|
||||||
Key="Software\$(var.QEMU_GA_MANUFACTURER)\$(var.QEMU_GA_DISTRO)\Tools\QemuGA">
|
Key="Software\$(var.QEMU_GA_MANUFACTURER)\$(var.QEMU_GA_DISTRO)\Tools\QemuGA">
|
||||||
|
|
|
@ -140,6 +140,11 @@ if targetos == 'windows'
|
||||||
qemu_ga_msi_vss = ['-D', 'InstallVss']
|
qemu_ga_msi_vss = ['-D', 'InstallVss']
|
||||||
deps += qga_vss
|
deps += qga_vss
|
||||||
endif
|
endif
|
||||||
|
if glib.version() < '2.73.2'
|
||||||
|
libpcre = 'libpcre1'
|
||||||
|
else
|
||||||
|
libpcre = 'libpcre2'
|
||||||
|
endif
|
||||||
qga_msi = custom_target('QGA MSI',
|
qga_msi = custom_target('QGA MSI',
|
||||||
input: files('installer/qemu-ga.wxs'),
|
input: files('installer/qemu-ga.wxs'),
|
||||||
output: 'qemu-ga-@0@.msi'.format(host_arch),
|
output: 'qemu-ga-@0@.msi'.format(host_arch),
|
||||||
|
@ -153,6 +158,7 @@ if targetos == 'windows'
|
||||||
'-D', 'QEMU_GA_VERSION=' + config_host['QEMU_GA_VERSION'],
|
'-D', 'QEMU_GA_VERSION=' + config_host['QEMU_GA_VERSION'],
|
||||||
'-D', 'QEMU_GA_MANUFACTURER=' + config_host['QEMU_GA_MANUFACTURER'],
|
'-D', 'QEMU_GA_MANUFACTURER=' + config_host['QEMU_GA_MANUFACTURER'],
|
||||||
'-D', 'QEMU_GA_DISTRO=' + config_host['QEMU_GA_DISTRO'],
|
'-D', 'QEMU_GA_DISTRO=' + config_host['QEMU_GA_DISTRO'],
|
||||||
|
'-D', 'LIBPCRE=' + libpcre,
|
||||||
])
|
])
|
||||||
all_qga += [qga_msi]
|
all_qga += [qga_msi]
|
||||||
alias_target('msi', qga_msi)
|
alias_target('msi', qga_msi)
|
||||||
|
|
Loading…
Reference in New Issue