Explorar o código

Modifications for current user install without admin privs.

svn:r17575
Martin Peck %!s(int64=16) %!d(string=hai) anos
pai
achega
bb8d818e92
Modificáronse 1 ficheiros con 87 adicións e 86 borrados
  1. 87 86
      contrib/tor.wxs.in

+ 87 - 86
contrib/tor.wxs.in

@@ -29,15 +29,30 @@
   UpgradeCode must remain the same for all packages of this type regardless of
   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.
   Product or Package ID's.  This is how existing versions are located.
     -->
     -->
-  <?define ThisProductVersion="2.1.7" ?>
+  <?define ThisProductVersion="2.1.8" ?>
   <?define ThisProductVersionDisp="@VERSION@" ?>
   <?define ThisProductVersionDisp="@VERSION@" ?>
   <?define UpgradeCode="64323a0c-9712-4a7a-8db8-d3c5c0b963df" ?>
   <?define UpgradeCode="64323a0c-9712-4a7a-8db8-d3c5c0b963df" ?>
   <?define TPI="The Tor Project, Inc." ?>
   <?define TPI="The Tor Project, Inc." ?>
 
 
+  <!-- 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" ?>
+
   <Product
   <Product
     Name="Tor"
     Name="Tor"
-    Id="1449ef81-e295-43e5-91ac-81b7da0e2024"
-    UpgradeCode="64323a0c-9712-4a7a-8db8-d3c5c0b963df"
+    Id="$(var.CurrTorProductGUID)"
+    UpgradeCode="$(var.UpgradeCode)"
     Version="$(var.ThisProductVersion)"
     Version="$(var.ThisProductVersion)"
     Manufacturer="$(var.TPI)"
     Manufacturer="$(var.TPI)"
     Language="1033" Codepage="1252">
     Language="1033" Codepage="1252">
@@ -64,11 +79,28 @@
       DiskPrompt="na"
       DiskPrompt="na"
     />
     />
 
 
+    <!-- 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>
+
     <!-- Properties used to control installation or repair features
     <!-- Properties used to control installation or repair features
     and other invocation options.
     and other invocation options.
     When ALLUSERS==1 the install is per machine, when 2 it is per user.
     When ALLUSERS==1 the install is per machine, when 2 it is per user.
       -->
       -->
-    <Property Id="ALLUSERS">1</Property>
+    <Property Id="ALLUSERS">2</Property>
     <Property Id="ReinstallModeText">omus</Property>
     <Property Id="ReinstallModeText">omus</Property>
     <Property Id="DiskPrompt">Tor Installation</Property>
     <Property Id="DiskPrompt">Tor Installation</Property>
 
 
@@ -86,34 +118,21 @@
       />
       />
     </Property>
     </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="64323a0c-9712-4a7a-8db8-d3c5c0b963df">
-      <UpgradeVersion
-        Property="UPGRADEFOUND"
-        OnlyDetect="no"
-        Minimum="0.0.1"
-        IncludeMinimum="yes"
-        Maximum="$(var.ThisProductVersion)"
-        IncludeMaximum="no"
-      />
-    </Upgrade>
-
-
     <!-- Most of the installation directives are for populating the
     <!-- Most of the installation directives are for populating the
     "Program Files" directory with the Tor binaries, dynamic link
     "Program Files" directory with the Tor binaries, dynamic link
     libraries, configuration files, and other documents.
     libraries, configuration files, and other documents.
       -->
       -->
     <Directory Id="TARGETDIR" Name="SourceDir">
     <Directory Id="TARGETDIR" Name="SourceDir">
-      <Directory Id="ProgramFilesFolder" Name="ProgramFilesDir">
+      <Directory Id="LocalAppDataFolder" Name="AppData">
         <Directory Id="INSTALLDIR" Name="Tor">
         <Directory Id="INSTALLDIR" Name="Tor">
 
 
           <!-- Tor application file -->
           <!-- Tor application file -->
-          <Component Id="TorExecutable" Guid="219e0538-7f7f-4445-8406-e4f06ba22417">
+          <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>
             <File
             <File
               Id="TorExe"
               Id="TorExe"
               Name="Tor.exe"
               Name="Tor.exe"
@@ -123,20 +142,14 @@
             />
             />
           </Component>
           </Component>
 
 
-          <!-- If run as service provide registry pointer to Tor path. -->
-          <Component Id="TorSvcLinks" Guid="b0e44ccf-4e85-4613-a026-9e3d0feef577">
-            <Condition>SVCINSTALL</Condition>
-            <RegistryKey Root="HKLM" Key="System\CurrentControlSet\Services\[SERVICEINTERNALNAME]"
-              Action="createAndRemoveOnUninstall">
-              <RegistryValue Name="TorSvcPath" Value="#1" Type="string" KeyPath="yes" />
-            </RegistryKey>
-          </Component>
-
           <!-- Tor OpenSSL shared libraries
           <!-- Tor OpenSSL shared libraries
           This optional component is required for shared builds
           This optional component is required for shared builds
           of Tor.  For static builds it is ignored.
           of Tor.  For static builds it is ignored.
             -->
             -->
-          <Component Id="OpenSSLLibrary" Guid="4d99fd44-dc24-46c6-8825-25b9e5916b85">
+          <Component Id="OpenSSLLibrary" Guid="$(var.CurrOpenSSLLibraryGUID)">
+            <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
+              <RegistryValue Name="UserSSLLibrary" Value="1" Type="integer" KeyPath="yes" />
+            </RegistryKey>
             <File
             <File
               Id="cryptoeay32dll"
               Id="cryptoeay32dll"
               Name="cryptoeay32-0.9.8.dll"
               Name="cryptoeay32-0.9.8.dll"
@@ -151,46 +164,12 @@
             />
             />
           </Component>
           </Component>
 
 
-          <!-- Tor docs -->
-          <Component Id="TorDocuments" Guid="3def35f6-70a0-44af-813a-f96bc8462748">
-            <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>
-      </Directory>
-
-      <Directory Id="LocalAppDataFolder" Name="AppData">
-        <Directory Id="AppRootDirectory" Name="Tor">
           <!-- Tor configuration files
           <!-- Tor configuration files
           The sample config is always kept up to date and the torrc
           The sample config is always kept up to date and the torrc
           is left as is if it exists and copied from the sample
           is left as is if it exists and copied from the sample
           config otherwise.
           config otherwise.
             -->
             -->
-          <Component Id="TorConfigFile" Guid="1dae9705-0bef-4588-be36-d8a5df5e47cc">
-            <CreateFolder/>
-            <RemoveFolder Id="RemoveAppRootDirectory" On="uninstall" />
+          <Component Id="TorConfigFile" Guid="$(var.CurrTorConfigFileGUID)">
             <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
             <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
               <RegistryValue Name="UserConfigFile" Value="1" Type="integer" KeyPath="yes" />
               <RegistryValue Name="UserConfigFile" Value="1" Type="integer" KeyPath="yes" />
             </RegistryKey>
             </RegistryKey>
@@ -210,7 +189,7 @@
           </Component>
           </Component>
   
   
           <!-- GeoIP data file.  This is an optional component.  -->
           <!-- GeoIP data file.  This is an optional component.  -->
-          <Component Id="TorGeoIPFile" Guid="54dcb7e9-ea49-4be5-8c1a-32bf45306f9b">
+          <Component Id="TorGeoIPFile" Guid="$(var.CurrTorGeoIPFileGUID)">
             <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
             <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
               <RegistryValue Name="UserGeoIPFile" Value="1" Type="integer" KeyPath="yes" />
               <RegistryValue Name="UserGeoIPFile" Value="1" Type="integer" KeyPath="yes" />
             </RegistryKey>
             </RegistryKey>
@@ -223,6 +202,41 @@
               DiskId="1"
               DiskId="1"
             /> 
             /> 
           </Component>
           </Component>
+
+          <!-- 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>
         </Directory>
         </Directory>
       </Directory>
       </Directory>
 
 
@@ -232,7 +246,7 @@
         -->
         -->
       <Directory Id="ProgramMenuFolder" Name="Programs">
       <Directory Id="ProgramMenuFolder" Name="Programs">
         <Directory Id="ShortcutFolder" Name="Tor">
         <Directory Id="ShortcutFolder" Name="Tor">
-          <Component Id="AddTorToStartMenu" Guid="a318c037-e1ed-481c-983d-4a0ad3810ba0">
+          <Component Id="AddTorToStartMenu" Guid="$(var.CurrAddTorToStartMenuGUID)">
             <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
             <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
               <RegistryValue Name="StartMenuShortcut" Value="1" Type="integer" KeyPath="yes" />
               <RegistryValue Name="StartMenuShortcut" Value="1" Type="integer" KeyPath="yes" />
             </RegistryKey>
             </RegistryKey>
@@ -246,7 +260,7 @@
       </Directory>
       </Directory>
 
 
       <Directory Id="DesktopFolder" Name="Desktop">
       <Directory Id="DesktopFolder" Name="Desktop">
-        <Component Id="AddTorToDesktop" Guid="9a00d5c1-1d5d-4a62-864e-f53f79b3c77a">
+        <Component Id="AddTorToDesktop" Guid="$(var.CurrAddTorToDesktopGUID)">
           <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
           <RegistryKey Root="HKCU" Key="Software\Tor" Action="createAndRemoveOnUninstall">
             <RegistryValue Name="DesktopShortcut" Value="1" Type="integer" KeyPath="yes" />
             <RegistryValue Name="DesktopShortcut" Value="1" Type="integer" KeyPath="yes" />
           </RegistryKey>
           </RegistryKey>
@@ -256,17 +270,6 @@
                     Icon="tor.ico" IconIndex="0" />
                     Icon="tor.ico" IconIndex="0" />
         </Component>
         </Component>
       </Directory>
       </Directory>
-
-      <!-- Current version registry info
-      This value can be used by third party applications to query
-      for the current version installed on the system.
-        -->
-      <Component Id="TorRegistry" Guid="575de318-a649-49fe-95e5-ee091f6cb8c6">
-        <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Tor"
-          Action="createAndRemoveOnUninstall">
-          <RegistryValue Name="Version" Value="$(var.ThisProductVersionDisp)" Type="string" KeyPath="yes" />
-        </RegistryKey>
-      </Component>
     </Directory>
     </Directory>
 
 
     <!-- Define list of application features available for install
     <!-- Define list of application features available for install
@@ -288,8 +291,6 @@
         <ComponentRef Id="TorGeoIPFile" />
         <ComponentRef Id="TorGeoIPFile" />
         <ComponentRef Id="OpenSSLLibrary" />
         <ComponentRef Id="OpenSSLLibrary" />
         <ComponentRef Id="TorDocuments" />
         <ComponentRef Id="TorDocuments" />
-        <ComponentRef Id="TorRegistry" /> 
-        <ComponentRef Id="TorSvcLinks" />
       </Feature>
       </Feature>
 
 
       <!-- Shortcuts on the Start Menu and Desktop are optional but
       <!-- Shortcuts on the Start Menu and Desktop are optional but
@@ -312,7 +313,7 @@
 
 
     <!-- Upgrade installation sequence. -->
     <!-- Upgrade installation sequence. -->
     <InstallExecuteSequence>
     <InstallExecuteSequence>
-      <RemoveExistingProducts After="InstallFinalize" />
+      <RemoveExistingProducts After="InstallValidate" />
     </InstallExecuteSequence>
     </InstallExecuteSequence>
 
 
     <!-- Set the UI options
     <!-- Set the UI options