summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Peck <coder@peertech.org>2009-01-15 20:13:47 +0000
committerMartin Peck <coder@peertech.org>2009-01-15 20:13:47 +0000
commit2495590a78f00bcda75cc5508a31b997bd40907d (patch)
treee62cd161cba5ca513dda77a02aaf77e15352bea6
parente414b12928d968bb09de0f1d67af3950ad19cb99 (diff)
downloadtor-2495590a78f00bcda75cc5508a31b997bd40907d.tar.gz
tor-2495590a78f00bcda75cc5508a31b997bd40907d.zip
Add initial wxs MSI installer specs for Thandy, TorButton, and Polipo packages.
svn:r18119
-rw-r--r--contrib/polipo.wxs217
-rw-r--r--contrib/thandy.wxs103
-rw-r--r--contrib/torbutton.wxs144
3 files changed, 464 insertions, 0 deletions
diff --git a/contrib/polipo.wxs b/contrib/polipo.wxs
new file mode 100644
index 0000000000..c23b9e5309
--- /dev/null
+++ b/contrib/polipo.wxs
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="Windows-1252" ?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?define ThisProductVersion="1.0.4" ?>
+ <?define ThisProductVersionDisp="1.0.4.1" ?>
+ <?define UpgradeCode="b45b9db8-8670-4546-8dd4-e9284ca81616" ?>
+
+ <?define CurrProductGUID="22c59fc2-8c94-4151-ad82-2c90bfa7ff99" ?>
+ <?define CurrExecutableGUID="cef195c5-817c-4963-a1f7-03e88c79985b" ?>
+ <?define CurrRegExLibsGUID="04b3e6f5-a4f3-4cc0-adb1-765c39050865" ?>
+ <?define CurrMingwLibsGUID="bd31ec38-27a3-415e-b19f-ccd61bc41d9a" ?>
+ <?define CurrDocumentsGUID="ff70f640-1a87-4eed-9897-277059e55c4f" ?>
+ <?define CurrConfigFileGUID="fbe1473f-de4d-4ca2-a8a4-66f3f92fff7d" ?>
+ <?define CurrStartMenuGUID="0b577f55-1ca5-43b8-9df2-3834843fc80b" ?>
+ <?define CurrDesktopGUID="0e7e07f2-b21b-49ea-a25e-569eae46e0ce" ?>
+ <?define CurrDocsOnDesktopGUID="783fb5f6-835d-4a81-988b-d46c683ac0e2" ?>
+ <?define CurrStartupGUID="60bc5fc3-74d2-4d7b-a659-8acebea93aa4" ?>
+ <?define CurrLocalProgramsGUID="e0c517aa-5eb7-4909-a23f-7fccd7fddeef" ?>
+
+ <Product Name="Polipo $(var.ThisProductVersionDisp)" Id="$(var.CurrProductGUID)"
+ Language="1033" Codepage="1252"
+ Version="$(var.ThisProductVersion)"
+ Manufacturer="mailto: coderman at gmail.com - test package for The Tor Project, Inc."
+ UpgradeCode="$(var.UpgradeCode)">
+
+ <Package Id="*" Keywords="Installer"
+ Description="Polipo $(var.ThisProductVersionDisp) Installer"
+ Manufacturer="mailto: coderman at gmail.com - test package for The Tor Project, Inc."
+ InstallerVersion="100" Compressed="yes"
+ Languages="1033" SummaryCodepage="1252"
+ InstallPrivileges="limited" />
+
+ <Media Id="1" Cabinet="Polipo.cab" CompressionLevel="high"
+ EmbedCab="yes" DiskPrompt="CD-ROM #1" />
+ <Property Id="DiskPrompt" Value="Polipo $(var.ThisProductVersionDisp) Installation Volume [1]" />
+ <Property Id="ALLUSERS" Secure="yes"/>
+ <Property Id="ReinstallModeText">omus</Property>
+
+ <!-- To avoid placing shortcuts all over the desktop / start menu during a
+ silent installation the NOSC=1 option can be passed to omit shortcuts.
+ This is useful if bundled with other applications like Vidalia that manage
+ configuration and Tor related processes themselves.
+ -->
+ <Property Id="NOSC" Secure="yes"/>
+
+ <!-- Associate this package with the upgrade code for this series
+ to ensure that upgrade installations by Thandy or other means work
+ as expected.
+ The OnlyDetect option must be false to ensure that existing files
+ from an older version are removed and replaced with current files.
+ -->
+ <Upgrade Id="$(var.UpgradeCode)">
+ <UpgradeVersion
+ Property="UPGRADEFOUND"
+ OnlyDetect="no"
+ Minimum="0.0.0"
+ IncludeMinimum="yes"
+ Maximum="$(var.ThisProductVersion)"
+ IncludeMaximum="no"
+ />
+ </Upgrade>
+
+
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="LocalAppDataFolder" Name="LocalAppData">
+ <Directory Id="LocalProgramsFolder" Name="Programs">
+
+ <!-- Until proper support for per-user installs is available we manage Programs folder.
+ Note that this directory will be left in place if it is in use by any other app.
+ -->
+ <Component Id="LocalProgramsFolderRef" Guid="$(var.CurrLocalProgramsGUID)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveLocalProgramsFolder" On="uninstall" />
+ <RegistryKey Root="HKCU" Key="Software\Polipo" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="LocalProgramsFolderRef" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ </Component>
+
+ <Directory Id="LocalProgramsInstDir" Name="Polipo">
+
+ <!-- Main Polipo application files -->
+ <Component Id="PolipoExecutable" Guid="$(var.CurrExecutableGUID)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveLocalProgramsInstDir" On="uninstall" />
+ <RegistryKey Root="HKCU" Key="Software\Polipo" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="Version" Value="$(var.ThisProductVersionDisp)" Type="string" KeyPath="yes" />
+ </RegistryKey>
+ <File Id="PolipoExe" DiskId="1"
+ Name="polipo.exe" Source="bin\polipo.exe" />
+ </Component>
+
+ <!-- MinGW-related library files -->
+ <Component Id="MinGWLibrary" Guid="$(var.CurrMingwLibsGUID)">
+ <RegistryKey Root="HKCU" Key="Software\Polipo" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="MinGWLibrary" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ <File Id="MinGWDll" DiskId="1"
+ Name="mingwm10.dll" Source="bin\mingwm10.dll" />
+ </Component>
+
+ <!-- GNU RegEx library files -->
+ <Component Id="GnuRegExLibrary" Guid="$(var.CurrRegExLibsGUID)">
+ <RegistryKey Root="HKCU" Key="Software\Polipo" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="RegExLibrary" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ <File Id="gnurxdll" DiskId="1"
+ Name="libgnurx-0.dll" Source="bin\libgnurx-0.dll" />
+ </Component>
+
+ </Directory>
+ </Directory>
+
+ <Directory Id="INSTALLDIR" Name="Polipo">
+ <Component Id="PolipoConfig" Guid="$(var.CurrConfigFileGUID)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveINSTALLDIR" On="uninstall" />
+ <RegistryKey Root="HKCU" Key="Software\Polipo" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="ConfigFile" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ <File
+ Id="PolipoConfigFile"
+ Name="config.txt"
+ Source="bin\polipo.conf"
+ Vital="yes"
+ ReadOnly="no"
+ DiskId="1">
+ <CopyFile
+ Id="PolipoSavedConfig"
+ DestinationName="save-cfg.txt"
+ />
+ </File>
+ </Component>
+
+ </Directory>
+ </Directory>
+
+ <Directory Id="ProgramMenuFolder" Name="Programs">
+ <Directory Id="ShortcutFolder" Name="Polipo">
+ <Component Id="AddPolipoToStartMenu" Guid="$(var.CurrStartMenuGUID)">
+ <Condition><![CDATA[NOSC <> 1]]> </Condition>
+ <RegistryKey Root="HKCU" Key="Software\Polipo" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="StartMenuShortcut" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ <Shortcut Id="PolipoStartMenuShortcut"
+ Name="Polipo" Target="[LocalProgramsInstDir]polipo.exe"
+ Directory="ShortcutFolder" WorkingDirectory="LocalProgramsInstDir" />
+ <RemoveFolder Id="RemoveShortcutFolder" On="uninstall" />
+ </Component>
+ </Directory>
+ </Directory>
+
+ <Directory Id="DesktopFolder" Name="Desktop">
+ <Component Id="AddPolipoToDesktop" Guid="$(var.CurrDesktopGUID)">
+ <Condition><![CDATA[NOSC <> 1]]> </Condition>
+ <RegistryKey Root="HKCU" Key="Software\Polipo" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="DesktopShortcut" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ <Shortcut Id="PolipoDesktopShortcut"
+ Name="Polipo" Target="[LocalProgramsInstDir]polipo.exe"
+ Directory="DesktopFolder" WorkingDirectory="LocalProgramsInstDir" />
+ </Component>
+ </Directory>
+
+ <Component Id="AddToStartupItems" Guid="$(var.CurrStartupGUID)">
+ <Condition><![CDATA[NOSC <> 1]]> </Condition>
+ <RegistryKey Root="HKCU"
+ Key="Software\Microsoft\Windows\CurrentVersion\Run"
+ Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="Polipo" Value='"[LocalProgramsInstDir]polipo.exe"' Type="string" />
+ </RegistryKey>
+ </Component>
+ </Directory>
+
+ <!-- Build up the feature hierarchy -->
+ <Feature Id="Complete" Title="Polipo"
+ Level="1" Display="expand" ConfigurableDirectory="INSTALLDIR"
+ Description="Polipo is application that helps you control, monitor, and configure the Tor software.">
+ <Feature Id="MainApplication" Title="Polipo $(var.ThisProductVersionDisp)"
+ AllowAdvertise="no" Absent="disallow" Level="1"
+ Description="Main application">
+ <ComponentRef Id="LocalProgramsFolderRef" />
+ <ComponentRef Id="PolipoExecutable" />
+ <ComponentRef Id="MinGWLibrary" />
+ <ComponentRef Id="GnuRegExLibrary" />
+ <ComponentRef Id="PolipoConfig" />
+ </Feature>
+ <Feature Id="Shortcuts" Title="Shortcuts"
+ AllowAdvertise="no" Absent="allow" Level="1"
+ Description="Add a shortcut to Polipo to your Start menu or Desktop.">
+ <Feature Id="StartMenuShortcuts" Title="Add to Start menu"
+ AllowAdvertise="no" Absent="allow" Level="1"
+ Description="Add Polipo to your Start menu">
+ <ComponentRef Id="AddPolipoToStartMenu" />
+ </Feature>
+ <Feature Id="DesktopShortcuts" Title="Add to Desktop"
+ AllowAdvertise="no" Absent="allow" Level="1"
+ Description="Add Polipo to your Desktop">
+ <ComponentRef Id="AddPolipoToDesktop" />
+ </Feature>
+ <Feature Id="RunAtStartup" Title="Run at Startup"
+ AllowAdvertise="no" Absent="allow" Level="1"
+ Description="Run Polipo automatically when your system starts">
+ <ComponentRef Id="AddToStartupItems" />
+ </Feature>
+ </Feature>
+ </Feature>
+
+ <!-- Upgrade installation sequence. -->
+ <InstallExecuteSequence>
+ <RemoveExistingProducts After="InstallValidate" />
+ </InstallExecuteSequence>
+
+ <!-- Set the UI options -->
+ <UIRef Id="WixUI_Tor" />
+ <WixVariable Id="WixUIBannerBmp" Value="header.bmp" />
+ <WixVariable Id="WixUIDialogBmp" Value="welcome.bmp" />
+ </Product>
+</Wix>
diff --git a/contrib/thandy.wxs b/contrib/thandy.wxs
new file mode 100644
index 0000000000..df871fbdf5
--- /dev/null
+++ b/contrib/thandy.wxs
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="Windows-1252" ?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?define ThisProductVersion="0.0.1" ?>
+ <?define ThisProductVersionDisp="0.0.1" ?>
+ <?define UpgradeCode="d0465b47-1872-4766-874d-add2a320687e" ?>
+
+ <?define CurrProductGUID="7aef0490-9ba5-40c2-9d33-4353063c475e" ?>
+ <?define CurrExecutableGUID="8609afe7-c272-48ce-a6a3-ac80759b0c49" ?>
+ <?define CurrLocalProgramsGUID="c5971fba-b0bc-46e1-881c-a9139122a45d" ?>
+
+ <Product Name="Thandy $(var.ThisProductVersionDisp)" Id="$(var.CurrProductGUID)"
+ Language="1033" Codepage="1252"
+ Version="$(var.ThisProductVersion)"
+ Manufacturer="mailto: coderman at gmail.com - test package for The Tor Project, Inc."
+ UpgradeCode="$(var.UpgradeCode)">
+
+ <Package Id="*" Keywords="Installer"
+ Description="Thandy $(var.ThisProductVersionDisp) Installer"
+ Manufacturer="mailto: coderman at gmail.com - test package for The Tor Project, Inc."
+ InstallerVersion="100" Compressed="yes"
+ Languages="1033" SummaryCodepage="1252"
+ InstallPrivileges="limited" />
+
+ <Media Id="1" Cabinet="Thandy.cab" CompressionLevel="high"
+ EmbedCab="yes" DiskPrompt="CD-ROM #1" />
+ <Property Id="DiskPrompt" Value="Thandy $(var.ThisProductVersionDisp) Installation Volume [1]" />
+ <Property Id="ALLUSERS" Secure="yes"/>
+ <Property Id="ReinstallModeText">omus</Property>
+
+ <!-- Associate this package with the upgrade code for this series
+ to ensure that upgrade installations by Thandy or other means work
+ as expected.
+ The OnlyDetect option must be false to ensure that existing files
+ from an older version are removed and replaced with current files.
+ -->
+ <Upgrade Id="$(var.UpgradeCode)">
+ <UpgradeVersion
+ Property="UPGRADEFOUND"
+ OnlyDetect="no"
+ Minimum="0.0.0"
+ IncludeMinimum="yes"
+ Maximum="$(var.ThisProductVersion)"
+ IncludeMaximum="no"
+ />
+ </Upgrade>
+
+
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="LocalAppDataFolder" Name="LocalAppData">
+ <Directory Id="LocalProgramsFolder" Name="Programs">
+
+ <!-- Until proper support for per-user installs is available we manage Programs folder.
+ Note that this directory will be left in place if it is in use by any other app.
+ -->
+ <Component Id="LocalProgramsFolderRef" Guid="$(var.CurrLocalProgramsGUID)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveLocalProgramsFolder" On="uninstall" />
+ <RegistryKey Root="HKCU" Key="Software\Thandy" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="LocalProgramsFolderRef" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ </Component>
+
+ <Directory Id="INSTALLDIR" Name="Thandy">
+
+ <!-- Main Thandy application files -->
+ <Component Id="ThandyExecutable" Guid="$(var.CurrExecutableGUID)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveINSTALLDIR" On="uninstall" />
+ <RegistryKey Root="HKCU" Key="Software\Thandy" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="Version" Value="$(var.ThisProductVersionDisp)" Type="string" KeyPath="yes" />
+ </RegistryKey>
+ <File Id="ThandyExe" DiskId="1"
+ Name="thandy.exe" Source="bin\Thandy.exe" />
+ </Component>
+
+ </Directory>
+ </Directory>
+ </Directory>
+ </Directory>
+
+ <!-- Build up the feature hierarchy -->
+ <Feature Id="Complete" Title="Thandy"
+ Level="1" Display="expand" ConfigurableDirectory="INSTALLDIR"
+ Description="Thandy is an automatic update client for Tor software.">
+ <Feature Id="MainApplication" Title="Thandy $(var.ThisProductVersionDisp)"
+ AllowAdvertise="no" Absent="disallow" Level="1"
+ Description="Main application">
+ <ComponentRef Id="LocalProgramsFolderRef" />
+ <ComponentRef Id="ThandyExecutable" />
+ </Feature>
+ </Feature>
+
+ <!-- Upgrade installation sequence. -->
+ <InstallExecuteSequence>
+ <RemoveExistingProducts After="InstallValidate" />
+ </InstallExecuteSequence>
+
+ <!-- Set the UI options -->
+ <UIRef Id="WixUI_Tor" />
+ <WixVariable Id="WixUIBannerBmp" Value="header.bmp" />
+ <WixVariable Id="WixUIDialogBmp" Value="welcome.bmp" />
+ </Product>
+</Wix>
diff --git a/contrib/torbutton.wxs b/contrib/torbutton.wxs
new file mode 100644
index 0000000000..971e61e312
--- /dev/null
+++ b/contrib/torbutton.wxs
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="Windows-1252" ?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?define ThisProductVersion="1.2.0" ?>
+ <?define ThisProductVersionDisp="1.2.0" ?>
+ <?define UpgradeCode="e13a294d-6ac6-4ddd-a300-8ee8dee768c6" ?>
+
+ <?define CurrProductGUID="5c09de77-eceb-44b7-a9cc-7308ed7dd0fa" ?>
+ <?define CurrExtensionGUID="cb29b0ed-4fb0-4f69-ab87-98cc3ae96eec" ?>
+ <?define CurrStartMenuGUID="24cabe82-2fd6-408e-9af4-e3792cac9feb" ?>
+ <?define CurrDesktopGUID="c1352049-ec2e-4b72-ab34-313b20016e84" ?>
+
+ <Product Name="TorButton $(var.ThisProductVersionDisp)" Id="$(var.CurrProductGUID)"
+ Language="1033" Codepage="1252"
+ Version="$(var.ThisProductVersion)"
+ Manufacturer="mailto: coderman at gmail.com - test package for The Tor Project, Inc."
+ UpgradeCode="$(var.UpgradeCode)">
+
+ <Package Id="*" Keywords="Installer"
+ Description="TorButton $(var.ThisProductVersionDisp) Installer"
+ Manufacturer="mailto: coderman at gmail.com - test package for The Tor Project, Inc."
+ InstallerVersion="100" Compressed="yes"
+ Languages="1033" SummaryCodepage="1252"
+ InstallPrivileges="limited" />
+
+ <Media Id="1" Cabinet="TorButton.cab" CompressionLevel="high"
+ EmbedCab="yes" DiskPrompt="CD-ROM #1" />
+ <Property Id="DiskPrompt" Value="TorButton $(var.ThisProductVersionDisp) Installation Volume [1]" />
+ <Property Id="ALLUSERS" Secure="yes"/>
+ <Property Id="ReinstallModeText">omus</Property>
+
+ <!-- To avoid placing shortcuts all over the desktop / start menu during a
+ silent installation the NOSC=1 option can be passed to omit shortcuts.
+ This is useful if bundled with other applications like Vidalia that manage
+ configuration and Tor related processes themselves.
+ -->
+ <Property Id="NOSC" Secure="yes"/>
+
+ <!-- Associate this package with the upgrade code for this series
+ to ensure that upgrade installations by Thandy or other means work
+ as expected.
+ The OnlyDetect option must be false to ensure that existing files
+ from an older version are removed and replaced with current files.
+ -->
+ <Upgrade Id="$(var.UpgradeCode)">
+ <UpgradeVersion
+ Property="UPGRADEFOUND"
+ OnlyDetect="no"
+ Minimum="0.0.0"
+ IncludeMinimum="yes"
+ Maximum="$(var.ThisProductVersion)"
+ IncludeMaximum="no"
+ />
+ </Upgrade>
+
+
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="LocalAppDataFolder" Name="LocalAppData">
+
+ <Directory Id="INSTALLDIR" Name="TorButton">
+ <Component Id="TorButtonExtension" Guid="$(var.CurrExtensionGUID)">
+ <CreateFolder/>
+ <RemoveFolder Id="RemoveINSTALLDIR" On="uninstall" />
+ <RegistryKey Root="HKCU" Key="Software\TorButton" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="Version" Value="$(var.ThisProductVersion)" Type="string" KeyPath="yes" />
+ </RegistryKey>
+ <File
+ Id="TorButtonExtensionFile"
+ Name="torbutton.xpi"
+ Source="torbutton.xpi"
+ Vital="yes"
+ ReadOnly="no"
+ DiskId="1">
+ </File>
+ </Component>
+
+ </Directory>
+ </Directory>
+
+ <Directory Id="ProgramMenuFolder" Name="Programs">
+ <Directory Id="ShortcutFolder" Name="TorButton">
+ <Component Id="AddTorButtonToStartMenu" Guid="$(var.CurrStartMenuGUID)">
+ <Condition><![CDATA[NOSC <> 1]]> </Condition>
+ <RegistryKey Root="HKCU" Key="Software\TorButton" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="StartMenuShortcut" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ <Shortcut Id="TorButtonStartMenuShortcut"
+ Name="Install TorButton" Target="[ProgramFilesFolder]Mozilla Firefox\firefox.exe"
+ Arguments="torbutton.xpi"
+ Directory="ShortcutFolder" WorkingDirectory="INSTALLDIR" />
+ <RemoveFolder Id="RemoveShortcutFolder" On="uninstall" />
+ </Component>
+ </Directory>
+ </Directory>
+
+ <Directory Id="DesktopFolder" Name="Desktop">
+ <Component Id="AddTorButtonToDesktop" Guid="$(var.CurrDesktopGUID)">
+ <Condition><![CDATA[NOSC <> 1]]> </Condition>
+ <RegistryKey Root="HKCU" Key="Software\TorButton" Action="createAndRemoveOnUninstall">
+ <RegistryValue Name="DesktopShortcut" Value="1" Type="integer" KeyPath="yes" />
+ </RegistryKey>
+ <Shortcut Id="TorButtonDesktopShortcut"
+ Name="Install TorButton" Target="[ProgramFilesFolder]Mozilla Firefox\firefox.exe"
+ Arguments="torbutton.xpi"
+ Directory="DesktopFolder" WorkingDirectory="INSTALLDIR" />
+ </Component>
+ </Directory>
+ </Directory>
+
+ <!-- Build up the feature hierarchy -->
+ <Feature Id="Complete" Title="TorButton"
+ Level="1" Display="expand" ConfigurableDirectory="INSTALLDIR"
+ Description="TorButton protects your FireFox browser while using the Tor network.">
+ <Feature Id="MainApplication" Title="TorButton $(var.ThisProductVersionDisp)"
+ AllowAdvertise="no" Absent="disallow" Level="1"
+ Description="Main application">
+ <ComponentRef Id="TorButtonExtension" />
+ </Feature>
+ <Feature Id="Shortcuts" Title="Shortcuts"
+ AllowAdvertise="no" Absent="allow" Level="1"
+ Description="Add a shortcut to TorButton to your Start menu or Desktop.">
+ <Feature Id="StartMenuShortcuts" Title="Add to Start menu"
+ AllowAdvertise="no" Absent="allow" Level="1"
+ Description="Add TorButton to your Start menu">
+ <ComponentRef Id="AddTorButtonToStartMenu" />
+ </Feature>
+ <Feature Id="DesktopShortcuts" Title="Add to Desktop"
+ AllowAdvertise="no" Absent="allow" Level="1"
+ Description="Add TorButton to your Desktop">
+ <ComponentRef Id="AddTorButtonToDesktop" />
+ </Feature>
+ </Feature>
+ </Feature>
+
+ <!-- Upgrade installation sequence. -->
+ <InstallExecuteSequence>
+ <RemoveExistingProducts After="InstallValidate" />
+ </InstallExecuteSequence>
+
+ <!-- Set the UI options -->
+ <UIRef Id="WixUI_Tor" />
+ <WixVariable Id="WixUIBannerBmp" Value="header.bmp" />
+ <WixVariable Id="WixUIDialogBmp" Value="welcome.bmp" />
+ </Product>
+</Wix>