win-pvdrivers

view installer.wxs @ 731:3b46c7474a82

Fix installer so that it definitely waits until all drivers are installed properly
author James Harper <james.harper@bendigoit.com.au>
date Sat Jan 02 10:22:04 2010 +1100 (2010-01-02)
parents 5bdb7251370c
children 83dd32e63133
line source
1 <?xml version='1.0' encoding='windows-1252'?>
2 <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:difx='http://schemas.microsoft.com/wix/DifxAppExtension' xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'>
3 <?if $(env._BUILDARCH) = x86 ?>
4 <?define ARCHDIR = i386 ?>
5 <?elseif $(env._BUILDARCH) = AMD64 ?>
6 <?define ARCHDIR = amd64 ?>
7 <?endif ?>
9 <Product Name='GPL PV Drivers for Windows' Id='*'
10 UpgradeCode='4EDE5DEC-3208-4a1e-8E52-DAC44F7D7062'
11 Language='1033' Codepage='1252' Version='$(env.GPLPV_VERSION)' Manufacturer='James Harper'>
13 <Package Id='*' Keywords='Installer' Description="GPL PV Drivers for Windows"
14 Comments='no comment' Manufacturer='James Harper'
15 InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' />
17 <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
19 <UI>
20 <UIRef Id="WixUI_Mondo" />
21 <UIRef Id="WixUI_ErrorProgressText" />
22 </UI>
24 <Media Id='1' Cabinet='gplpv.cab' EmbedCab='yes' />
26 <Binary Id='waitfordevices.vbs' SourceFile='waitnopendinginstallevents\waitfordevices.vbs'/>
27 <Binary Id='waitnopendinginstallevents.exe' SourceFile='waitnopendinginstallevents\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\waitnopendinginstallevents.exe'/>
28 <CustomAction Id='InstallShutdownMonService' FileKey='shutdownmon.exe' ExeCommand='-i' Execute='deferred' Return='check'/>
29 <CustomAction Id='UnInstallShutdownMonService' FileKey='shutdownmon.exe' ExeCommand='-u' Execute='deferred' Return='check'/>
30 <CustomAction Id='WaitForDevices' BinaryKey='waitfordevices.vbs' VBScriptCall='DoWaitForDevices' Execute='deferred' Return='check'/>
31 <CustomAction Id='WaitNoPendingInstallEvents' BinaryKey='waitnopendinginstallevents.exe' ExeCommand='300000' Execute='deferred' Return='check'/>
32 <CustomAction Id='CopyConfig' FileKey='copyconfig.exe' ExeCommand='' Execute='deferred' Return='check'/>
34 <Directory Id='TARGETDIR' Name='SourceDir'>
35 <Directory Id='ProgramFilesFolder' Name='PFiles'>
36 <Directory Id='XenProgramFilesDir' Name='Xen PV Drivers'>
37 <Directory Id='BinDir' Name='bin'>
38 <Component Id='ShutdownMon' Guid='BF8DC887-4B46-4e77-ACD3-125E8A2BAB8E'>
39 <File Id='shutdownmon.exe' Name='shutdownmon.exe' DiskId='1' Source='shutdownmon\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\shutdownmon.exe' />
40 </Component>
41 <Component Id='CopyConfig' Guid='C01F8A97-1410-41ce-A16E-76E6072FDFF8'>
42 <File Id='copyconfig.exe' Name='copyconfig.exe' DiskId='1' Source='copyconfig\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\copyconfig.exe' />
43 </Component>
44 </Directory>
45 <Directory Id='DocDir' Name='doc'>
46 <Component Id='Docs' Guid='C827FAD8-F459-42bf-9F77-921E04261B72'>
47 <File Id='Changelog.txt' Name='Changelog.txt' DiskId='1' Source='Changelog.txt' />
48 </Component>
49 </Directory>
50 <Directory Id='DriversDir' Name='drivers'>
51 <Directory Id='XenPciDir' Name='xenpci'>
52 <Component Id='XenPci' Guid='D6BB9B5F-61F9-4b6e-8FAD-289706F5EBEB'>
53 <File Id='xenpci.cat' Name='xenpci.cat' DiskId='1' Source='xenpci\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenpci.cat' />
54 <File Id='xenpci.inf' Name='xenpci.inf' DiskId='1' Source='xenpci\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenpci.inf' />
55 <File Id='xenpci.sys' Name='xenpci.sys' DiskId='1' Source='xenpci\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenpci.sys' />
56 <File Id='$(env.WDFFILENAME)' Name='$(env.WDFFILENAME)' DiskId='1' Source='xenpci\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\$(env.WDFFILENAME)' />
57 <difx:Driver Sequence='99' Legacy='yes' PlugAndPlayPrompt='no' ForceInstall='yes' />
58 </Component>
59 </Directory>
60 <Directory Id='XenVbdDir' Name='xenvbd'>
61 <Component Id='XenVbd' Guid='1F05DC54-974C-40f6-BF41-0EFDB3EBD1DC'>
62 <File Id='xenvbd.cat' Name='xenvbd.cat' DiskId='1' Source='xenvbd\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenvbd.cat' />
63 <File Id='xenvbd.inf' Name='xenvbd.inf' DiskId='1' Source='xenvbd\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenvbd.inf' />
64 <File Id='xenvbd.sys' Name='xenvbd.sys' DiskId='1' Source='xenvbd\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenvbd.sys' />
65 <File Id='xencoinst.dll' Name='xencoinst.dll' DiskId='1' Source='coinst\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\coinst.dll' />
66 <difx:Driver Sequence='1' Legacy='yes' PlugAndPlayPrompt='no' ForceInstall='yes'/>
67 </Component>
68 </Directory>
69 <Directory Id='XenScsiDir' Name='xenscsi'>
70 <Component Id='XenScsi' Guid='47C9AB48-3A7D-42b2-AE2C-7F9235C8B7B4'>
71 <File Id='xenscsi.cat' Name='xenscsi.cat' DiskId='1' Source='xenscsi\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenscsi.cat' />
72 <File Id='xenscsi.inf' Name='xenscsi.inf' DiskId='1' Source='xenscsi\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenscsi.inf' />
73 <File Id='xenscsi.sys' Name='xenscsi.sys' DiskId='1' Source='xenscsi\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenscsi.sys' />
74 <difx:Driver Sequence='2' Legacy='yes' PlugAndPlayPrompt='no' ForceInstall='yes' />
75 </Component>
76 </Directory>
77 <Directory Id='XenNetDir' Name='xennet'>
78 <Component Id='XenNet' Guid='F16B1EC7-35B1-42c2-9017-22DC23D80BE7'>
79 <File Id='xennet.cat' Name='xennet.cat' DiskId='1' Source='xennet\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xennet.cat' />
80 <File Id='xennet.inf' Name='xennet.inf' DiskId='1' Source='xennet\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xennet.inf' />
81 <File Id='xennet.sys' Name='xennet.sys' DiskId='1' Source='xennet\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xennet.sys' />
82 <difx:Driver Sequence='3' Legacy='yes' PlugAndPlayPrompt='no' ForceInstall='yes' />
83 </Component>
84 </Directory>
85 <Directory Id='XenUsbDir' Name='xenusb'>
86 <Component Id='XenUsb' Guid='83746E68-DBCC-4feb-B521-09D5328D3BB0'>
87 <File Id='xenusb.cat' Name='xenusb.cat' DiskId='1' Source='xenusb\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenusb.cat' />
88 <File Id='xenusb.inf' Name='xenusb.inf' DiskId='1' Source='xenusb\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenusb.inf' />
89 <File Id='xenusb.sys' Name='xenusb.sys' DiskId='1' Source='xenusb\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\xenusb.sys' />
90 <!-- we deliberately use the file from xenpci so that wix can deduplicate it -->
91 <File Id='$(env.WDFFILENAME)_usb' Name='$(env.WDFFILENAME)' DiskId='1' Source='xenpci\obj$(env.BUILD_ALT_DIR)\$(var.ARCHDIR)\$(env.WDFFILENAME)' />
92 <difx:Driver Sequence='3' Legacy='yes' PlugAndPlayPrompt='no' ForceInstall='yes' />
93 </Component>
94 </Directory>
95 </Directory>
96 </Directory>
97 <Component Id='Cert' Guid='11112EC8-8635-45fb-9AE8-C22310F1E82D'>
98 <File Id='gplpv.cer' Name='gplpv.cer' DiskId='1' Source='gplpv.cer' />
99 <iis:Certificate Id='gplpv.cer' Name='gplpv.cer' Request='no' BinaryKey='gplpv.cer' StoreLocation='localMachine' StoreName='root' Overwrite='no' />
100 </Component>
101 </Directory>
102 </Directory>
104 <Binary Id='gplpv.cer' SourceFile='gplpv.cer' />
106 <Feature Id='Cert' Title='Install Certificate' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='allow'>
107 <ComponentRef Id='Cert' />
108 </Feature>
109 <Feature Id='Docs' Title='Install Docs' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='disallow'>
110 <ComponentRef Id='Docs' />
111 </Feature>
112 <Feature Id='Drivers' Title='Drivers' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='allow'>
113 <Feature Id='XenPci' Title='XenPci Driver' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='disallow'>
114 <ComponentRef Id='XenPci' />
115 </Feature>
116 <Feature Id='XenVbd' Title='XenVbd Driver' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='allow'>
117 <ComponentRef Id='XenVbd' />
118 </Feature>
119 <Feature Id='XenScsi' Title='XenScsi Driver' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='allow'>
120 <ComponentRef Id='XenScsi' />
121 </Feature>
122 <Feature Id='XenNet' Title='XenNet Driver' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='allow'>
123 <ComponentRef Id='XenNet' />
124 </Feature>
125 <Feature Id='XenUsb' Title='XenUsb Driver' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='allow'>
126 <ComponentRef Id='XenUsb' />
127 </Feature>
128 </Feature>
129 <Feature Id='ShutdownMon' Title='Shutdown Monitor' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='allow'>
130 <ComponentRef Id='ShutdownMon' />
131 </Feature>
132 <Feature Id='CopyConfig' Title='Copy Network Config' Level='1' AllowAdvertise='no' InstallDefault='local' Absent='allow'>
133 <ComponentRef Id='CopyConfig' />
134 </Feature>
136 <InstallExecuteSequence>
137 <ScheduleReboot After='InstallFinalize' />
138 <Custom Action='UnInstallShutdownMonService' Before='StopServices'>$ShutdownMon=2</Custom>
139 <Custom Action='InstallShutdownMonService' After='StartServices'>$ShutdownMon>2</Custom>
140 <Custom Action='WaitForDevices' After='MsiProcessDrivers'>1</Custom>
141 <Custom Action='WaitNoPendingInstallEvents' After='WaitForDevices'>1</Custom>
142 <Custom Action='CopyConfig' After='WaitNoPendingInstallEvents'>$CopyConfig>2</Custom>
143 </InstallExecuteSequence>
144 </Product>
145 </Wix>