Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 3 | <?if $(var.Arch) = "64"?> |
| 4 | <?define ArchLib=libgcc_s_seh-1.dll?> |
| 5 | <?define GaProgramFilesFolder="ProgramFiles64Folder" ?> |
Marc-André Lureau | 0480a1b | 2022-05-25 16:41:38 +0200 | [diff] [blame] | 6 | <?else?> |
| 7 | <?if $(var.Arch) = "32"?> |
| 8 | <?define ArchLib=libgcc_s_dw2-1.dll?> |
| 9 | <?define GaProgramFilesFolder="ProgramFilesFolder" ?> |
| 10 | <?else?> |
| 11 | <?error Unexpected Arch value $(var.Arch)?> |
| 12 | <?endif?> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 13 | <?endif?> |
| 14 | |
| 15 | <Product |
| 16 | Name="QEMU guest agent" |
Bishara AbuHattoum | a972304 | 2018-06-28 17:58:16 +0300 | [diff] [blame] | 17 | Id="*" |
Leonid Bloch | 1d394fb | 2015-08-03 20:54:21 +0300 | [diff] [blame] | 18 | UpgradeCode="{EB6B8302-C06E-4BEC-ADAC-932C68A3A98D}" |
Marc-André Lureau | 4f3c577 | 2022-05-25 16:41:36 +0200 | [diff] [blame] | 19 | Manufacturer="$(var.QEMU_GA_MANUFACTURER)" |
| 20 | Version="$(var.QEMU_GA_VERSION)" |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 21 | Language="1033"> |
| 22 | <?if $(var.Arch) = 32 ?> |
| 23 | <Condition Message="Error: 32-bit version of Qemu GA can not be installed on 64-bit Windows.">NOT VersionNT64</Condition> |
| 24 | <?endif?> |
| 25 | <Package |
Marc-André Lureau | 4f3c577 | 2022-05-25 16:41:36 +0200 | [diff] [blame] | 26 | Manufacturer="$(var.QEMU_GA_MANUFACTURER)" |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 27 | InstallerVersion="200" |
| 28 | Languages="1033" |
| 29 | Compressed="yes" |
| 30 | InstallScope="perMachine" |
| 31 | /> |
Marc-André Lureau | 4f3c577 | 2022-05-25 16:41:36 +0200 | [diff] [blame] | 32 | <Media Id="1" Cabinet="qemu_ga.$(var.QEMU_GA_VERSION).cab" EmbedCab="yes" /> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 33 | <Property Id="WHSLogo">1</Property> |
Konstantin Kostiuk | 88288c2 | 2023-03-03 21:20:07 +0200 | [diff] [blame] | 34 | <Property Id="ARPNOMODIFY" Value="yes" Secure="yes" /> |
Leonid Bloch | 848849d | 2015-08-03 20:54:24 +0300 | [diff] [blame] | 35 | <MajorUpgrade |
| 36 | DowngradeErrorMessage="Error: A newer version of QEMU guest agent is already installed." |
| 37 | /> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 38 | |
| 39 | <Directory Id="TARGETDIR" Name="SourceDir"> |
| 40 | <Directory Id="$(var.GaProgramFilesFolder)" Name="QEMU Guest Agent"> |
| 41 | <Directory Id="qemu_ga_directory" Name="Qemu-ga"> |
Leonid Bloch | 1d394fb | 2015-08-03 20:54:21 +0300 | [diff] [blame] | 42 | <Component Id="qemu_ga" Guid="{908B7199-DE2A-4DC6-A8D0-27A5AE444FEA}"> |
Marc-André Lureau | 4f3c577 | 2022-05-25 16:41:36 +0200 | [diff] [blame] | 43 | <File Id="qemu_ga.exe" Name="qemu-ga.exe" Source="$(var.BUILD_DIR)/qga/qemu-ga.exe" KeyPath="yes" DiskId="1"/> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 44 | <ServiceInstall |
| 45 | Id="ServiceInstaller" |
| 46 | Type="ownProcess" |
| 47 | Vital="yes" |
| 48 | Name="QEMU-GA" |
| 49 | DisplayName="QEMU Guest Agent" |
| 50 | Description="QEMU Guest Agent" |
| 51 | Start="auto" |
| 52 | Account="LocalSystem" |
| 53 | ErrorControl="ignore" |
| 54 | Interactive="no" |
Michael Roth | ebc88c0 | 2018-10-07 14:02:21 +0300 | [diff] [blame] | 55 | Arguments="-d --retry-path" |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 56 | > |
| 57 | </ServiceInstall> |
Basil Salman | bb1ce44 | 2020-03-11 19:04:15 +0200 | [diff] [blame] | 58 | <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="QEMU-GA" Wait="yes" /> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 59 | </Component> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 60 | <?ifdef var.InstallVss?> |
Michael Roth | e300858 | 2021-08-02 22:28:58 -0500 | [diff] [blame] | 61 | <Component Id="libstdc++_6_lib" Guid="{55E737B5-9127-4A11-9FC3-A29367714574}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 62 | <File Id="libstdc++-6.lib" Name="libstdc++-6.dll" Source="$(var.BIN_DIR)/libstdc++-6.dll" KeyPath="yes" DiskId="1"/> |
Michael Roth | e300858 | 2021-08-02 22:28:58 -0500 | [diff] [blame] | 63 | </Component> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 64 | <Component Id="qga_vss_dll" Guid="{CB19C453-FABB-4BB1-ABAB-6B74F687BFBB}"> |
Marc-André Lureau | 4f3c577 | 2022-05-25 16:41:36 +0200 | [diff] [blame] | 65 | <File Id="qga_vss.dll" Name="qga-vss.dll" Source="$(var.BUILD_DIR)/qga/vss-win32/qga-vss.dll" KeyPath="yes" DiskId="1"/> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 66 | </Component> |
| 67 | <Component Id="qga_vss_tlb" Guid="{D8D584B1-59C2-4FB7-A91F-636FF7BFA66E}"> |
Marc-André Lureau | 4f3c577 | 2022-05-25 16:41:36 +0200 | [diff] [blame] | 68 | <File Id="qga_vss.tlb" Name="qga-vss.tlb" Source="$(var.BUILD_DIR)/qga/vss-win32/qga-vss.tlb" KeyPath="yes" DiskId="1"/> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 69 | </Component> |
| 70 | <?endif?> |
Yuri Pudgorodskiy | f2b608a | 2015-11-19 15:20:37 +0300 | [diff] [blame] | 71 | <?if $(var.Arch) = "32"?> |
| 72 | <Component Id="gspawn-helper-console" Guid="{446185B3-87BE-43D2-96B8-0FEFD9E8696D}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 73 | <File Id="gspawn-win32-helper-console.exe" Name="gspawn-win32-helper-console.exe" Source="$(var.BIN_DIR)/gspawn-win32-helper-console.exe" KeyPath="yes" DiskId="1"/> |
Yuri Pudgorodskiy | f2b608a | 2015-11-19 15:20:37 +0300 | [diff] [blame] | 74 | </Component> |
Yuri Pudgorodskiy | 44c6e00 | 2015-11-25 22:02:26 +0300 | [diff] [blame] | 75 | <Component Id="gspawn-helper" Guid="{CD67A5A3-2DB1-4DA1-A67A-8D71E797B466}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 76 | <File Id="gspawn-win32-helper.exe" Name="gspawn-win32-helper.exe" Source="$(var.BIN_DIR)/gspawn-win32-helper-console.exe" KeyPath="yes" DiskId="1"/> |
Yuri Pudgorodskiy | 44c6e00 | 2015-11-25 22:02:26 +0300 | [diff] [blame] | 77 | </Component> |
Yuri Pudgorodskiy | f2b608a | 2015-11-19 15:20:37 +0300 | [diff] [blame] | 78 | <?endif?> |
| 79 | <?if $(var.Arch) = "64"?> |
| 80 | <Component Id="gspawn-helper-console" Guid="{9E615A9F-349A-4992-A5C2-C10BAD173660}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 81 | <File Id="gspawn-win64-helper-console.exe" Name="gspawn-win64-helper-console.exe" Source="$(var.BIN_DIR)/gspawn-win64-helper-console.exe" KeyPath="yes" DiskId="1"/> |
Yuri Pudgorodskiy | f2b608a | 2015-11-19 15:20:37 +0300 | [diff] [blame] | 82 | </Component> |
Yuri Pudgorodskiy | 44c6e00 | 2015-11-25 22:02:26 +0300 | [diff] [blame] | 83 | <Component Id="gspawn-helper" Guid="{D201AD22-1846-4E4F-B6E1-C7A908ED2457}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 84 | <File Id="gspawn-win64-helper.exe" Name="gspawn-win64-helper.exe" Source="$(var.BIN_DIR)/gspawn-win64-helper-console.exe" KeyPath="yes" DiskId="1"/> |
Yuri Pudgorodskiy | 44c6e00 | 2015-11-25 22:02:26 +0300 | [diff] [blame] | 85 | </Component> |
Yuri Pudgorodskiy | f2b608a | 2015-11-19 15:20:37 +0300 | [diff] [blame] | 86 | <?endif?> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 87 | <Component Id="iconv" Guid="{35EE3558-D34B-4F0A-B8BD-430FF0775246}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 88 | <File Id="iconv.dll" Name="iconv.dll" Source="$(var.BIN_DIR)/iconv.dll" KeyPath="yes" DiskId="1"/> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 89 | </Component> |
| 90 | <Component Id="libgcc_arch_lib" Guid="{ADD4D07D-4515-4AB6-AF3E-C904961B4BB0}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 91 | <File Id="libgcc_arch_lib" Name="$(var.ArchLib)" Source="$(var.BIN_DIR)/$(var.ArchLib)" KeyPath="yes" DiskId="1"/> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 92 | </Component> |
| 93 | <Component Id="libglib" Guid="{D31BFD83-2773-4B65-B45A-E0D2ADA58679}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 94 | <File Id="libglib_2.0_0.dll" Name="libglib-2.0-0.dll" Source="$(var.BIN_DIR)/libglib-2.0-0.dll" KeyPath="yes" DiskId="1"/> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 95 | </Component> |
| 96 | <Component Id="libintl" Guid="{A641BC2D-A907-4A94-9149-F30ED430878F}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 97 | <File Id="libintl_8.dll" Name="libintl-8.dll" Source="$(var.BIN_DIR)/libintl-8.dll" KeyPath="yes" DiskId="1"/> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 98 | </Component> |
| 99 | <Component Id="libssp" Guid="{7880087B-02B4-4EF6-A5D3-D18F8E3D90E1}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 100 | <File Id="libssp_0.dll" Name="libssp-0.dll" Source="$(var.BIN_DIR)/libssp-0.dll" KeyPath="yes" DiskId="1"/> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 101 | </Component> |
| 102 | <Component Id="libwinpthread" Guid="{6C117C78-0F47-4B07-8F34-6BEE11643829}"> |
Marc-André Lureau | 5b9e7d0 | 2022-05-25 16:41:39 +0200 | [diff] [blame] | 103 | <File Id="libwinpthread_1.dll" Name="libwinpthread-1.dll" Source="$(var.BIN_DIR)/libwinpthread-1.dll" KeyPath="yes" DiskId="1"/> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 104 | </Component> |
Andrey Drobyshev | 9ca180b | 2022-12-13 17:13:43 +0200 | [diff] [blame] | 105 | <?if $(var.LIBPCRE) = "libpcre1"?> |
| 106 | <Component Id="libpcre" Guid="{7A86B45E-A009-489A-A849-CE3BACF03CD0}"> |
| 107 | <File Id="libpcre_1.dll" Name="libpcre-1.dll" Source="$(var.BIN_DIR)/libpcre-1.dll" KeyPath="yes" DiskId="1"/> |
| 108 | </Component> |
| 109 | <?else?> |
| 110 | <Component Id="libpcre" Guid="{F92A3804-B59C-419D-8F29-99A30352C156}"> |
| 111 | <File Id="libpcre2_8_0.dll" Name="libpcre2-8-0.dll" Source="$(var.BIN_DIR)/libpcre2-8-0.dll" KeyPath="yes" DiskId="1"/> |
| 112 | </Component> |
| 113 | <?endif?> |
Leonid Bloch | 1d394fb | 2015-08-03 20:54:21 +0300 | [diff] [blame] | 114 | <Component Id="registry_entries" Guid="{D075D109-51CA-11E3-9F8B-000C29858960}"> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 115 | <RegistryKey Root="HKLM" |
Marc-André Lureau | 4f3c577 | 2022-05-25 16:41:36 +0200 | [diff] [blame] | 116 | Key="Software\$(var.QEMU_GA_MANUFACTURER)\$(var.QEMU_GA_DISTRO)\Tools\QemuGA"> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 117 | <RegistryValue Type="string" Name="ProductID" Value="fb0a0d66-c7fb-4e2e-a16b-c4a3bfe8d13b" /> |
Marc-André Lureau | 4f3c577 | 2022-05-25 16:41:36 +0200 | [diff] [blame] | 118 | <RegistryValue Type="string" Name="Version" Value="$(var.QEMU_GA_VERSION)" /> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 119 | </RegistryKey> |
Andrey Drobyshev | f9f0e61 | 2022-11-29 19:38:08 +0200 | [diff] [blame] | 120 | <RegistryKey Root="HKLM" |
| 121 | Key="System\CurrentControlSet\Services\EventLog\Application\qemu-ga"> |
| 122 | <RegistryValue Type="integer" Name="TypesSupported" Value="7" /> |
| 123 | <RegistryValue Type="string" Name="EventMessageFile" Value="[qemu_ga_directory]qemu-ga.exe" /> |
| 124 | </RegistryKey> |
Kfir Manor | fe67fc0 | 2023-02-09 10:50:02 +0200 | [diff] [blame] | 125 | <RegistryKey Root="HKLM" |
| 126 | Key="System\CurrentControlSet\Services\QEMU Guest Agent VSS Provider"> |
| 127 | <RegistryValue Type="integer" Name="VssOption" Value="1" /> |
| 128 | </RegistryKey> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 129 | </Component> |
| 130 | </Directory> |
| 131 | </Directory> |
| 132 | </Directory> |
| 133 | |
Konstantin Kostiuk | 07ce178 | 2023-03-03 21:20:08 +0200 | [diff] [blame] | 134 | <Property Id="rundll" Value="rundll32.exe"/> |
Leonid Bloch | 848849d | 2015-08-03 20:54:24 +0300 | [diff] [blame] | 135 | <Property Id="REINSTALLMODE" Value="amus"/> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 136 | |
Leonid Bloch | 8b17ccc | 2015-08-03 20:54:22 +0300 | [diff] [blame] | 137 | <?ifdef var.InstallVss?> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 138 | <CustomAction Id="RegisterCom" |
Konstantin Kostiuk | 07ce178 | 2023-03-03 21:20:08 +0200 | [diff] [blame] | 139 | ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMRegister' |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 140 | Execute="deferred" |
Konstantin Kostiuk | 07ce178 | 2023-03-03 21:20:08 +0200 | [diff] [blame] | 141 | Property="rundll" |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 142 | Impersonate="no" |
| 143 | Return="check" |
| 144 | > |
| 145 | </CustomAction> |
| 146 | <CustomAction Id="UnRegisterCom" |
Konstantin Kostiuk | 07ce178 | 2023-03-03 21:20:08 +0200 | [diff] [blame] | 147 | ExeCommand='"[qemu_ga_directory]qga-vss.dll",DLLCOMUnregister' |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 148 | Execute="deferred" |
Konstantin Kostiuk | 07ce178 | 2023-03-03 21:20:08 +0200 | [diff] [blame] | 149 | Property="rundll" |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 150 | Impersonate="no" |
| 151 | Return="check" |
Leonid Bloch | 0a18750 | 2015-07-29 20:10:51 +0300 | [diff] [blame] | 152 | > |
| 153 | </CustomAction> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 154 | <?endif?> |
| 155 | |
| 156 | <Feature Id="QEMUFeature" Title="QEMU Guest Agent" Level="1"> |
| 157 | <ComponentRef Id="qemu_ga" /> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 158 | <?ifdef var.InstallVss?> |
Michael Roth | e300858 | 2021-08-02 22:28:58 -0500 | [diff] [blame] | 159 | <ComponentRef Id="libstdc++_6_lib" /> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 160 | <ComponentRef Id="qga_vss_dll" /> |
| 161 | <ComponentRef Id="qga_vss_tlb" /> |
| 162 | <?endif?> |
Yuri Pudgorodskiy | f2b608a | 2015-11-19 15:20:37 +0300 | [diff] [blame] | 163 | <ComponentRef Id="gspawn-helper-console" /> |
Yuri Pudgorodskiy | 44c6e00 | 2015-11-25 22:02:26 +0300 | [diff] [blame] | 164 | <ComponentRef Id="gspawn-helper" /> |
Leonid Bloch | 5e994f9 | 2015-08-03 20:54:23 +0300 | [diff] [blame] | 165 | <ComponentRef Id="iconv" /> |
| 166 | <ComponentRef Id="libgcc_arch_lib" /> |
| 167 | <ComponentRef Id="libglib" /> |
| 168 | <ComponentRef Id="libintl" /> |
| 169 | <ComponentRef Id="libssp" /> |
| 170 | <ComponentRef Id="libwinpthread" /> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 171 | <ComponentRef Id="registry_entries" /> |
Thomas Lamprecht | f2dce82 | 2017-06-01 14:47:46 +0200 | [diff] [blame] | 172 | <ComponentRef Id="libpcre" /> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 173 | </Feature> |
| 174 | |
| 175 | <InstallExecuteSequence> |
Leonid Bloch | 8b17ccc | 2015-08-03 20:54:22 +0300 | [diff] [blame] | 176 | <?ifdef var.InstallVss?> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 177 | <Custom Action="UnRegisterCom" After="StopServices">Installed</Custom> |
Leonid Bloch | 848849d | 2015-08-03 20:54:24 +0300 | [diff] [blame] | 178 | <Custom Action="RegisterCom" After="InstallServices">NOT REMOVE</Custom> |
Yossi Hindin | 66ae13b | 2015-05-06 14:57:39 +0300 | [diff] [blame] | 179 | <?endif?> |
| 180 | </InstallExecuteSequence> |
| 181 | </Product> |
| 182 | </Wix> |