[Python-checkins] cpython (3.5): Issue #25165: Windows uninstallation should not remove launcher if other

steve.dower python-checkins at python.org
Thu Oct 1 18:20:41 EDT 2015


https://hg.python.org/cpython/rev/a2d30dfa46a7
changeset:   98473:a2d30dfa46a7
branch:      3.5
user:        Steve Dower <steve.dower at microsoft.com>
date:        Thu Oct 01 15:19:39 2015 -0700
summary:
  Issue #25165: Windows uninstallation should not remove launcher if other versions remain

files:
  Misc/NEWS                           |  5 ++++-
  Tools/msi/common.wxs                |  6 ++++--
  Tools/msi/launcher/launcher.wixproj |  1 +
  Tools/msi/launcher/launcher.wxs     |  7 +++++++
  4 files changed, 16 insertions(+), 3 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -244,7 +244,10 @@
 Windows
 -------
 
-- Issues #25112: py.exe launcher is missing icons
+- Issue #25165: Windows uninstallation should not remove launcher if other
+  versions remain
+
+- Issue #25112: py.exe launcher is missing icons
 
 - Issue #25102: Windows installer does not precompile for -O or -OO.
 
diff --git a/Tools/msi/common.wxs b/Tools/msi/common.wxs
--- a/Tools/msi/common.wxs
+++ b/Tools/msi/common.wxs
@@ -22,17 +22,19 @@
         </Upgrade>
         
         <?if $(var.UpgradeCode)!=$(var.CoreUpgradeCode) ?>
+        <?ifndef SkipMissingCore ?>
         <Upgrade Id="$(var.CoreUpgradeCode)">
             <UpgradeVersion Property="MISSING_CORE" Minimum="$(var.Version)" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="yes" OnlyDetect="yes" />
         </Upgrade>
+        <Condition Message="!(loc.IncorrectCore)">Installed OR NOT MISSING_CORE</Condition>
+        <?endif ?>
         <?endif ?>
         
         <Condition Message="!(loc.NoDowngrade)">Installed OR NOT DOWNGRADE</Condition>
-        <Condition Message="!(loc.IncorrectCore)">Installed OR NOT MISSING_CORE</Condition>
         <Condition Message="!(loc.NoTargetDir)">Installed OR TARGETDIR OR Suppress_TARGETDIR_Check</Condition>
 
         <InstallExecuteSequence>
-            <RemoveExistingProducts After="InstallInitialize">UPGRADE</RemoveExistingProducts>
+            <RemoveExistingProducts After="InstallInitialize" Overridable="yes">UPGRADE</RemoveExistingProducts>
         </InstallExecuteSequence>
     </Fragment>
     
diff --git a/Tools/msi/launcher/launcher.wixproj b/Tools/msi/launcher/launcher.wixproj
--- a/Tools/msi/launcher/launcher.wixproj
+++ b/Tools/msi/launcher/launcher.wixproj
@@ -5,6 +5,7 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>launcher</OutputName>
         <OutputType>Package</OutputType>
+        <DefineConstants>SkipMissingCore=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
     <Import Project="..\msi.props" />
     <ItemGroup>
diff --git a/Tools/msi/launcher/launcher.wxs b/Tools/msi/launcher/launcher.wxs
--- a/Tools/msi/launcher/launcher.wxs
+++ b/Tools/msi/launcher/launcher.wxs
@@ -26,6 +26,13 @@
         <InstallExecuteSequence>
             <Custom Before="SetLauncherInstallDirectoryLM" Action="SetLauncherInstallDirectoryCU">NOT Installed AND NOT ALLUSERS=1</Custom>
             <Custom Before="CostFinalize" Action="SetLauncherInstallDirectoryLM">NOT Installed AND ALLUSERS=1</Custom>
+
+            <RemoveExistingProducts After="InstallInitialize">UPGRADE or REMOVE_OLD_LAUNCHER</RemoveExistingProducts>
         </InstallExecuteSequence>
+        
+        <!-- Python 3.5.0 shipped with an incorrect UpgradeCode -->
+        <Upgrade Id="A71530B9-E89D-53DB-9C2D-C6D7551876D8">
+            <UpgradeVersion Maximum="$(var.Version)" Property="REMOVE_OLD_LAUNCHER" />
+        </Upgrade>
     </Product>
 </Wix>

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list