]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-101849: Add upgrade codes for old versions of launcher that ended up with later...
authorSteve Dower <steve.dower@python.org>
Mon, 13 Feb 2023 20:33:48 +0000 (20:33 +0000)
committerGitHub <noreply@github.com>
Mon, 13 Feb 2023 20:33:48 +0000 (20:33 +0000)
Misc/NEWS.d/next/Windows/2023-02-13-16-32-50.gh-issue-101849.7lm_53.rst [new file with mode: 0644]
Tools/msi/common.wxs
Tools/msi/launcher/launcher.wxs

diff --git a/Misc/NEWS.d/next/Windows/2023-02-13-16-32-50.gh-issue-101849.7lm_53.rst b/Misc/NEWS.d/next/Windows/2023-02-13-16-32-50.gh-issue-101849.7lm_53.rst
new file mode 100644 (file)
index 0000000..861d4de
--- /dev/null
@@ -0,0 +1 @@
+Ensures installer will correctly upgrade existing ``py.exe`` launcher installs.
index 55cb44860d02c02463e08d2a7a2ee338e476d374..54fa749ab17cdd0cd1a11da3fbad208b89c44573 100644 (file)
@@ -25,7 +25,6 @@
             <UpgradeVersion Property="DOWNGRADE" Minimum="$(var.Version)" IncludeMinimum="no" OnlyDetect="yes" />
             <UpgradeVersion Property="UPGRADE" Minimum="$(var.UpgradeMinimumVersion)" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="no" />
         </Upgrade>
-        <?endif ?>
         
         <?ifdef CoreUpgradeCode ?>
         <?if $(var.UpgradeCode)!=$(var.CoreUpgradeCode) ?>
@@ -42,6 +41,7 @@
         <InstallExecuteSequence>
             <RemoveExistingProducts After="InstallInitialize" Overridable="yes">UPGRADE</RemoveExistingProducts>
         </InstallExecuteSequence>
+        <?endif ?>
     </Fragment>
     
     <Fragment>
index b83058c63bf6d932aa513926d08c1ed128f01cca..49f1f7b8c1762eed391ef29e120988a637679c87 100644 (file)
             <Custom Before="SetLauncherInstallDirectoryLM" Action="SetLauncherInstallDirectoryCU">NOT Installed AND NOT ALLUSERS=1</Custom>
             <Custom Before="CostFinalize" Action="SetLauncherInstallDirectoryLM">NOT Installed AND ALLUSERS=1</Custom>
 
+            <?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?>
+            <RemoveExistingProducts After="InstallValidate">UPGRADE or REMOVE_350_LAUNCHER or REMOVE_360A1_LAUNCHER or UPGRADE_3_11_0 or UPGRADE_3_11_1</RemoveExistingProducts>
+            <?else ?>
             <RemoveExistingProducts After="InstallValidate">UPGRADE or REMOVE_350_LAUNCHER or REMOVE_360A1_LAUNCHER</RemoveExistingProducts>
+            <?endif ?>
         </InstallExecuteSequence>
 
+        <?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?>
+        <Condition Message="!(loc.NoDowngrade)">Installed OR NOT DOWNGRADE OR UPGRADE_3_11_0 OR UPGRADE_3_11_1</Condition>
+        <?else ?>
+        <Condition Message="!(loc.NoDowngrade)">Installed OR NOT DOWNGRADE</Condition>
+        <?endif ?>
+
         <!-- Upgrade all versions of the launcher -->
         <Upgrade Id="$(var.UpgradeCode)">
             <UpgradeVersion Property="DOWNGRADE" Minimum="$(var.Version)" IncludeMinimum="no" OnlyDetect="yes" />
             <UpgradeVersion Property="UPGRADE" Minimum="0.0.0.0" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="no" />
+            <!--
+            Prior to 3.11.2150, version numbers incorrectly used date-based
+            revision numbers in the third field. Because these are higher than
+            the real version, it prevents upgrades.
+            Releases of 3.10 have a similar issue, however, no significant
+            changes have shipped in the launcher, so we don't worry about it.
+            -->
+            <?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?>
+            <UpgradeVersion Property="UPGRADE_3_11_0" Minimum="3.11.7966.0" IncludeMinimum="yes" Maximum="3.11.7966.0" IncludeMaximum="yes" />
+            <UpgradeVersion Property="UPGRADE_3_11_1" Minimum="3.11.8009.0" IncludeMinimum="yes" Maximum="3.11.8009.0" IncludeMaximum="yes" />
+            <?endif ?>
         </Upgrade>
         <!-- Python 3.5.0 shipped with a different UpgradeCode -->
         <Upgrade Id="A71530B9-E89D-53DB-9C2D-C6D7551876D8">