[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r18119: {} Add initial wxs MSI installer specs for Thandy, TorButton, a (tor/trunk/contrib)



Author: coderman
Date: 2009-01-15 15:13:47 -0500 (Thu, 15 Jan 2009)
New Revision: 18119

Added:
   tor/trunk/contrib/polipo.wxs
   tor/trunk/contrib/thandy.wxs
   tor/trunk/contrib/torbutton.wxs
Log:
Add initial wxs MSI installer specs for Thandy, TorButton, and Polipo packages.

Added: tor/trunk/contrib/polipo.wxs
===================================================================
--- tor/trunk/contrib/polipo.wxs	                        (rev 0)
+++ tor/trunk/contrib/polipo.wxs	2009-01-15 20:13:47 UTC (rev 18119)
@@ -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>

Added: tor/trunk/contrib/thandy.wxs
===================================================================
--- tor/trunk/contrib/thandy.wxs	                        (rev 0)
+++ tor/trunk/contrib/thandy.wxs	2009-01-15 20:13:47 UTC (rev 18119)
@@ -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>

Added: tor/trunk/contrib/torbutton.wxs
===================================================================
--- tor/trunk/contrib/torbutton.wxs	                        (rev 0)
+++ tor/trunk/contrib/torbutton.wxs	2009-01-15 20:13:47 UTC (rev 18119)
@@ -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>