2008-11-29 13:05:04 +01:00
|
|
|
<?xml version="1.0" encoding="Windows-1252" ?>
|
|
|
|
<!--
|
2008-11-29 13:09:05 +01:00
|
|
|
WiX is a Microsoft Installer tool that parses an installation
|
|
|
|
specification XML document and produces an MSI package for use on
|
|
|
|
updated Windows 2000 and newer systems.
|
2008-11-29 13:05:04 +01:00
|
|
|
|
2008-11-29 13:09:05 +01:00
|
|
|
The MSI package format provides some advantages over the existing NSIS
|
|
|
|
packages when used in an automated fashion. A modified version of
|
|
|
|
the Mondo UI installer is included without EULA and other unnecessary
|
|
|
|
dialogs. You must update the UIRef element below to change UI.
|
2008-11-29 13:05:04 +01:00
|
|
|
|
|
|
|
Compile MSI installer via WiX:
|
|
|
|
candle.exe contrib/*.wxs
|
|
|
|
light.exe *.wixobj -out tor.msi -ext C:\Path\to\Wix\bin\WixUIExtension.dll
|
|
|
|
|
|
|
|
A silent installation can be performed with a /quiet option passed.
|
2008-11-29 13:09:05 +01:00
|
|
|
msiexec /i tor.msi INSTALLDIR=C:\path\to\install\to /qn
|
2008-11-29 13:05:04 +01:00
|
|
|
|
|
|
|
A repair operation can be performed with /f and remove via /x
|
|
|
|
|
2008-11-29 13:09:05 +01:00
|
|
|
More msiexec command line details at:
|
|
|
|
http://technet.microsoft.com/en-us/library/cc759262.aspx
|
2008-11-29 13:05:04 +01:00
|
|
|
-->
|
|
|
|
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
2008-12-07 02:19:10 +01:00
|
|
|
<!-- Definitions for critical elements of this MSI package.
|
|
|
|
Note that the product version is compressed into a X.X.X format. If the four
|
|
|
|
element version is used, the last octet is ignored when comparing versions
|
|
|
|
for upgrade, thus forcing the use of the three element version format.
|
|
|
|
UpgradeCode must remain the same for all packages of this type regardless of
|
|
|
|
Product or Package ID's. This is how existing versions are located.
|
|
|
|
-->
|
2008-12-11 05:19:53 +01:00
|
|
|
<?define ThisProductVersion="2.1.8" ?>
|
2008-12-07 02:19:10 +01:00
|
|
|
<?define ThisProductVersionDisp="@VERSION@" ?>
|
|
|
|
<?define UpgradeCode="64323a0c-9712-4a7a-8db8-d3c5c0b963df" ?>
|
|
|
|
<?define TPI="The Tor Project, Inc." ?>
|
|
|
|
|
2008-12-11 05:19:53 +01:00
|
|
|
<!-- The remaining GUIDs are assigned to components or other variable
|
|
|
|
identifiers. Whenever a new package is built these values MUST be
|
|
|
|
modified for upgrades to work correctly! Note that future MSI packages should
|
|
|
|
re-use components that haven't changed to speed installation.
|
|
|
|
-->
|
|
|
|
<?define CurrTorProductGUID="654cd293-e721-44eb-a31c-fc39a36a9975" ?>
|
|
|
|
<?define CurrTorExecutableGUID="1f50bd0d-f731-49b6-b905-5682a419881a" ?>
|
|
|
|
<?define CurrTorSvcLinksGUID="d4104c4a-f940-4f36-acc7-a5d1c8e72828" ?>
|
|
|
|
<?define CurrOpenSSLLibraryGUID="126bd857-348e-48d2-8b79-cd4648e5f471" ?>
|
|
|
|
<?define CurrTorDocumentsGUID="8b36bf4e-1f9d-4f9e-a91a-bab7da486c98" ?>
|
|
|
|
<?define CurrTorConfigFileGUID="a380ee19-470d-4b35-a0fa-aa19f342c4c5" ?>
|
|
|
|
<?define CurrTorGeoIPFileGUID="03afdbae-2e48-45c5-a059-3d3bac63d07f" ?>
|
|
|
|
<?define CurrAddTorToStartMenuGUID="7f0cbd78-9608-4780-a848-771d724727b2" ?>
|
|
|
|
<?define CurrAddTorToDesktopGUID="30b9f30f-b930-4751-856e-e1280f2227bf" ?>
|
|
|
|
|
2008-11-29 13:05:04 +01:00
|
|
|
<Product
|
|
|
|
Name="Tor"
|
2008-12-11 05:19:53 +01:00
|
|
|
Id="$(var.CurrTorProductGUID)"
|
|
|
|
UpgradeCode="$(var.UpgradeCode)"
|
2008-12-07 02:19:10 +01:00
|
|
|
Version="$(var.ThisProductVersion)"
|
|
|
|
Manufacturer="$(var.TPI)"
|
2008-11-29 13:05:04 +01:00
|
|
|
Language="1033" Codepage="1252">
|
2008-11-29 13:09:05 +01:00
|
|
|
|
|
|
|
<!-- Common package definitions. Most of these elements are self
|
|
|
|
explanatory or do not need modification.
|
|
|
|
Note that there is no support for signature verification nor
|
|
|
|
patched upgrades at this time.
|
2008-11-29 13:05:04 +01:00
|
|
|
-->
|
|
|
|
<Package
|
|
|
|
Id="*"
|
2008-12-07 02:19:10 +01:00
|
|
|
Keywords="Tor,Installer"
|
|
|
|
Description="Tor $(var.ThisProductVersionDisp) Installer"
|
|
|
|
Manufacturer="$(var.TPI)"
|
2008-11-29 13:05:04 +01:00
|
|
|
Compressed="yes"
|
|
|
|
InstallerVersion="100"
|
|
|
|
Languages="1033"
|
|
|
|
SummaryCodepage="1252"
|
|
|
|
/>
|
2008-12-07 02:19:10 +01:00
|
|
|
<Media Id="1"
|
2008-11-29 13:05:04 +01:00
|
|
|
Cabinet="Tor.cab"
|
|
|
|
CompressionLevel="high"
|
|
|
|
EmbedCab="yes"
|
|
|
|
DiskPrompt="na"
|
|
|
|
/>
|
2008-12-07 02:19:10 +01:00
|
|
|
|
2008-12-11 05:19:53 +01:00
|
|
|
<!-- 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.1"
|
|
|
|
IncludeMinimum="yes"
|
|
|
|
Maximum="$(var.ThisProductVersion)"
|
|
|
|
IncludeMaximum="no"
|
|
|
|
/>
|
|
|
|
</Upgrade>
|
|
|
|
|
2008-12-07 02:19:10 +01:00
|
|
|
<!-- Properties used to control installation or repair features
|
|
|
|
and other invocation options.
|
|
|
|
-->
|
|
|
|
<Property Id="ReinstallModeText">omus</Property>
|
|
|
|
<Property Id="DiskPrompt">Tor Installation</Property>
|
|
|
|
|
|
|
|
<!-- Support for service type Tor installations (soon). -->
|
|
|
|
<Property Id="SVCINSTALL">0</Property>
|
|
|
|
<Property Id="SERVICENAME">Tor</Property>
|
|
|
|
<Property Id="SERVICEINTERNALNAME">Tor</Property>
|
|
|
|
<Property Id="EXISTING_TOR_SERVICE_PATH">
|
|
|
|
<RegistrySearch
|
|
|
|
Id="ExistingTorService"
|
|
|
|
Root="HKLM"
|
|
|
|
Key="System\CurrentControlSet\Services\[SERVICEINTERNALNAME]"
|
|
|
|
Name="TorSvcPath"
|
|
|
|
Type="raw"
|
|
|
|
/>
|
|
|
|
</Property>
|
|
|
|
|
2008-11-29 13:09:05 +01:00
|
|
|
<!-- Most of the installation directives are for populating the
|
|
|
|
"Program Files" directory with the Tor binaries, dynamic link
|
|
|
|
libraries, configuration files, and other documents.
|
2008-11-29 13:05:04 +01:00
|
|
|
-->
|
|
|
|
<Directory Id="TARGETDIR" Name="SourceDir">
|
2008-12-11 05:19:53 +01:00
|
|
|
<Directory Id="LocalAppDataFolder" Name="AppData">
|
2008-11-29 13:05:04 +01:00
|
|
|
<Directory Id="INSTALLDIR" Name="Tor">
|
|
|
|
|
|
|
|
<!-- Tor application file -->
|
2008-12-11 05:19:53 +01:00
|
|
|
<Component Id="TorExecutable" Guid="$(var.CurrTorExecutableGUID)">
|
|
|
|
<CreateFolder/>
|
|
|
|
<RemoveFolder Id="RemoveINSTALLDIR" On="uninstall" />
|
|
|
|
<RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
|
|
|
|
<RegistryValue Name="Version" Value="$(var.ThisProductVersionDisp)" Type="string" KeyPath="yes" />
|
|
|
|
</RegistryKey>
|
2008-11-29 13:05:04 +01:00
|
|
|
<File
|
|
|
|
Id="TorExe"
|
|
|
|
Name="Tor.exe"
|
|
|
|
Source="bin\tor.exe"
|
|
|
|
Vital="yes"
|
|
|
|
DiskId="1"
|
|
|
|
/>
|
|
|
|
</Component>
|
|
|
|
|
|
|
|
<!-- Tor OpenSSL shared libraries
|
2008-12-07 02:19:10 +01:00
|
|
|
This optional component is required for shared builds
|
|
|
|
of Tor. For static builds it is ignored.
|
2008-11-29 13:05:04 +01:00
|
|
|
-->
|
2008-12-11 05:19:53 +01:00
|
|
|
<Component Id="OpenSSLLibrary" Guid="$(var.CurrOpenSSLLibraryGUID)">
|
|
|
|
<RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
|
|
|
|
<RegistryValue Name="UserSSLLibrary" Value="1" Type="integer" KeyPath="yes" />
|
|
|
|
</RegistryKey>
|
2008-11-29 13:05:04 +01:00
|
|
|
<File
|
|
|
|
Id="cryptoeay32dll"
|
|
|
|
Name="cryptoeay32-0.9.8.dll"
|
|
|
|
Source="bin/cryptoeay32-0.9.8.dll"
|
|
|
|
DiskId="1"
|
|
|
|
/>
|
|
|
|
<File
|
|
|
|
Id="ssleay32dll"
|
|
|
|
Name="ssleay32-0.9.8.dll"
|
|
|
|
Source="bin/ssleay32-0.9.8.dll"
|
|
|
|
DiskId="1"
|
|
|
|
/>
|
|
|
|
</Component>
|
|
|
|
|
2008-12-07 02:19:10 +01:00
|
|
|
<!-- Tor configuration files
|
|
|
|
The sample config is always kept up to date and the torrc
|
|
|
|
is left as is if it exists and copied from the sample
|
|
|
|
config otherwise.
|
|
|
|
-->
|
2008-12-11 05:19:53 +01:00
|
|
|
<Component Id="TorConfigFile" Guid="$(var.CurrTorConfigFileGUID)">
|
2008-12-07 02:19:10 +01:00
|
|
|
<RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
|
|
|
|
<RegistryValue Name="UserConfigFile" Value="1" Type="integer" KeyPath="yes" />
|
|
|
|
</RegistryKey>
|
|
|
|
<File
|
|
|
|
Id="TorSampleConfig"
|
|
|
|
Name="torrc.sample"
|
|
|
|
Source="src\config\torrc.sample"
|
|
|
|
Vital="yes"
|
|
|
|
ReadOnly="yes"
|
|
|
|
DiskId="1"
|
|
|
|
>
|
|
|
|
<CopyFile
|
|
|
|
Id="TorConfig"
|
|
|
|
DestinationName="torrc"
|
|
|
|
/>
|
|
|
|
</File>
|
|
|
|
</Component>
|
|
|
|
|
|
|
|
<!-- GeoIP data file. This is an optional component. -->
|
2008-12-11 05:19:53 +01:00
|
|
|
<Component Id="TorGeoIPFile" Guid="$(var.CurrTorGeoIPFileGUID)">
|
2008-12-07 02:19:10 +01:00
|
|
|
<RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
|
|
|
|
<RegistryValue Name="UserGeoIPFile" Value="1" Type="integer" KeyPath="yes" />
|
|
|
|
</RegistryKey>
|
|
|
|
<File
|
|
|
|
Id="GeoIPFile"
|
|
|
|
Name="geoip"
|
|
|
|
Source="share/tor/geoip"
|
|
|
|
Vital="no"
|
|
|
|
ReadOnly="yes"
|
|
|
|
DiskId="1"
|
|
|
|
/>
|
|
|
|
</Component>
|
2008-12-11 05:19:53 +01:00
|
|
|
|
|
|
|
<!-- Tor docs -->
|
|
|
|
<Directory Id="TorDocsDirectory" Name="docs">
|
|
|
|
<Component Id="TorDocuments" Guid="$(var.CurrTorDocumentsGUID)">
|
|
|
|
<CreateFolder/>
|
|
|
|
<RemoveFolder Id="RemoveTorDocsDirectory" On="uninstall" />
|
|
|
|
<RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
|
|
|
|
<RegistryValue Name="UserDocs" Value="1" Type="integer" KeyPath="yes" />
|
|
|
|
</RegistryKey>
|
|
|
|
<File
|
|
|
|
Id="TorReadme"
|
|
|
|
Name="README"
|
|
|
|
Source="README"
|
|
|
|
DiskId="1"
|
|
|
|
/>
|
|
|
|
<File
|
|
|
|
Id="TorAuthors"
|
|
|
|
Name="Authors"
|
|
|
|
Source="Authors"
|
|
|
|
DiskId="1"
|
|
|
|
/>
|
|
|
|
<File
|
|
|
|
Id="TorChangelog"
|
|
|
|
Name="ChangeLog"
|
|
|
|
Source="ChangeLog"
|
|
|
|
DiskId="1"
|
|
|
|
/>
|
|
|
|
<File
|
|
|
|
Id="TorLicense"
|
|
|
|
Name="LICENSE"
|
|
|
|
Source="LICENSE"
|
|
|
|
DiskId="1"
|
|
|
|
/>
|
|
|
|
</Component>
|
|
|
|
</Directory>
|
2008-12-07 02:19:10 +01:00
|
|
|
</Directory>
|
|
|
|
</Directory>
|
|
|
|
|
2008-11-29 13:05:04 +01:00
|
|
|
<!-- Create shortcuts if requested
|
2008-12-07 02:19:10 +01:00
|
|
|
Remember that shortcuts must always be tied to a "key"
|
|
|
|
registry value for proper repair and removal.
|
2008-11-29 13:05:04 +01:00
|
|
|
-->
|
|
|
|
<Directory Id="ProgramMenuFolder" Name="Programs">
|
|
|
|
<Directory Id="ShortcutFolder" Name="Tor">
|
2008-12-11 05:19:53 +01:00
|
|
|
<Component Id="AddTorToStartMenu" Guid="$(var.CurrAddTorToStartMenuGUID)">
|
2008-11-29 13:05:04 +01:00
|
|
|
<RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
|
|
|
|
<RegistryValue Name="StartMenuShortcut" Value="1" Type="integer" KeyPath="yes" />
|
|
|
|
</RegistryKey>
|
|
|
|
<Shortcut Id="TorStartMenuShortcut"
|
|
|
|
Name="Tor" Target="[INSTALLDIR]tor.exe"
|
|
|
|
Directory="ShortcutFolder" WorkingDirectory="INSTALLDIR"
|
|
|
|
Icon="tor.ico" IconIndex="0" />
|
|
|
|
<RemoveFolder Id="RemoveShortcutFolder" On="uninstall" />
|
|
|
|
</Component>
|
|
|
|
</Directory>
|
|
|
|
</Directory>
|
|
|
|
|
|
|
|
<Directory Id="DesktopFolder" Name="Desktop">
|
2008-12-11 05:19:53 +01:00
|
|
|
<Component Id="AddTorToDesktop" Guid="$(var.CurrAddTorToDesktopGUID)">
|
2008-11-29 13:05:04 +01:00
|
|
|
<RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
|
|
|
|
<RegistryValue Name="DesktopShortcut" Value="1" Type="integer" KeyPath="yes" />
|
|
|
|
</RegistryKey>
|
|
|
|
<Shortcut Id="TorDesktopShortcut"
|
|
|
|
Name="Tor" Target="[INSTALLDIR]tor.exe"
|
|
|
|
Directory="DesktopFolder" WorkingDirectory="INSTALLDIR"
|
|
|
|
Icon="tor.ico" IconIndex="0" />
|
|
|
|
</Component>
|
|
|
|
</Directory>
|
|
|
|
</Directory>
|
|
|
|
|
|
|
|
<!-- Define list of application features available for install
|
2008-12-07 02:19:10 +01:00
|
|
|
There are two main sections to this list. The "MainApplication"
|
|
|
|
section which defines a core set of mandatory files and setup
|
|
|
|
and the other optional components like shortcuts which are not
|
|
|
|
required for functional installation.
|
2008-11-29 13:05:04 +01:00
|
|
|
-->
|
|
|
|
<Feature Id="Complete" Title="Tor"
|
|
|
|
Level="1" Display="expand" ConfigurableDirectory="INSTALLDIR"
|
|
|
|
Description="Tor is an implementation of Onion Routing. You can read more at https://www.torproject.org/">
|
|
|
|
|
|
|
|
<!-- Core files and setup tasks that must always be included in installation -->
|
|
|
|
<Feature Id="MainApplication" Title="Tor Application"
|
|
|
|
AllowAdvertise="no" Absent="disallow" Level="1"
|
|
|
|
Description="Main Tor application">
|
|
|
|
<ComponentRef Id="TorExecutable" />
|
|
|
|
<ComponentRef Id="TorConfigFile" />
|
2008-12-07 02:19:10 +01:00
|
|
|
<ComponentRef Id="TorGeoIPFile" />
|
2008-11-29 13:05:04 +01:00
|
|
|
<ComponentRef Id="OpenSSLLibrary" />
|
|
|
|
<ComponentRef Id="TorDocuments" />
|
|
|
|
</Feature>
|
|
|
|
|
2008-11-29 13:09:05 +01:00
|
|
|
<!-- Shortcuts on the Start Menu and Desktop are optional but
|
|
|
|
provided by default. -->
|
2008-11-29 13:05:04 +01:00
|
|
|
<Feature Id="Shortcuts" Title="Shortcuts"
|
|
|
|
AllowAdvertise="no" Absent="allow" Level="1"
|
|
|
|
Description="Add shortcuts to Tor.">
|
|
|
|
<Feature Id="StartMenuShortcuts" Title="Add to Start menu"
|
|
|
|
AllowAdvertise="no" Absent="allow" Level="1"
|
|
|
|
Description="Add Tor to your Start menu">
|
|
|
|
<ComponentRef Id="AddTorToStartMenu" />
|
|
|
|
</Feature>
|
|
|
|
<Feature Id="DesktopShortcuts" Title="Add to Desktop"
|
|
|
|
AllowAdvertise="no" Absent="allow" Level="1"
|
|
|
|
Description="Add Tor to your Desktop">
|
|
|
|
<ComponentRef Id="AddTorToDesktop" />
|
|
|
|
</Feature>
|
|
|
|
</Feature>
|
|
|
|
</Feature>
|
|
|
|
|
2008-12-07 02:19:10 +01:00
|
|
|
<!-- Upgrade installation sequence. -->
|
|
|
|
<InstallExecuteSequence>
|
2008-12-11 05:19:53 +01:00
|
|
|
<RemoveExistingProducts After="InstallValidate" />
|
2008-12-07 02:19:10 +01:00
|
|
|
</InstallExecuteSequence>
|
|
|
|
|
2008-11-29 13:05:04 +01:00
|
|
|
<!-- Set the UI options
|
2008-12-07 02:19:10 +01:00
|
|
|
Use a custom UI sequence to avoid EULA and other extraneous
|
|
|
|
parts of Mondo and other GUIs
|
2008-11-29 13:05:04 +01:00
|
|
|
-->
|
|
|
|
<UIRef Id="WixUI_Tor" />
|
|
|
|
<Icon Id="tor.ico" SourceFile="contrib/tor.ico" />
|
|
|
|
</Product>
|
|
|
|
</Wix>
|
|
|
|
|