summaryrefslogtreecommitdiffstats
path: root/Tools/msi
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2016-05-18 22:54:05 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2016-05-18 22:54:05 (GMT)
commit4962141804676b34c372c8d6941eaf8edab3bfce (patch)
tree5bc3250ab83ff8716fc55bb8b5cfbb2f61c92eb9 /Tools/msi
parent1cea70f08c0b6aa3fccb246416b367e9afc1932a (diff)
downloadcpython-4962141804676b34c372c8d6941eaf8edab3bfce.zip
cpython-4962141804676b34c372c8d6941eaf8edab3bfce.tar.gz
cpython-4962141804676b34c372c8d6941eaf8edab3bfce.tar.bz2
Removes versioning from py.exe launcher installer and ensures that old launchers are replaced by newer ones.
Diffstat (limited to 'Tools/msi')
-rw-r--r--Tools/msi/common.wxs4
-rw-r--r--Tools/msi/launcher/launcher.wixproj3
-rw-r--r--Tools/msi/launcher/launcher.wxs13
-rw-r--r--Tools/msi/launcher/launcher_en-US.wxl10
-rw-r--r--Tools/msi/msi.props4
-rw-r--r--Tools/msi/msi.targets4
6 files changed, 26 insertions, 12 deletions
diff --git a/Tools/msi/common.wxs b/Tools/msi/common.wxs
index b907872..4efad65 100644
--- a/Tools/msi/common.wxs
+++ b/Tools/msi/common.wxs
@@ -21,8 +21,8 @@
<UpgradeVersion Property="UPGRADE" Minimum="$(var.UpgradeMinimumVersion)" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="no" />
</Upgrade>
+ <?ifdef CoreUpgradeCode ?>
<?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>
@@ -47,9 +47,11 @@
</Fragment>
<Fragment>
+ <?ifdef InstallDirectoryGuidSeed ?>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="InstallDirectory" ComponentGuidGenerationSeed="$(var.InstallDirectoryGuidSeed)" />
</Directory>
+ <?endif ?>
</Fragment>
<!-- Top-level directories -->
diff --git a/Tools/msi/launcher/launcher.wixproj b/Tools/msi/launcher/launcher.wixproj
index a0f1d57..67fb025 100644
--- a/Tools/msi/launcher/launcher.wixproj
+++ b/Tools/msi/launcher/launcher.wixproj
@@ -5,7 +5,8 @@
<SchemaVersion>2.0</SchemaVersion>
<OutputName>launcher</OutputName>
<OutputType>Package</OutputType>
- <DefineConstants>SkipMissingCore=1;$(DefineConstants)</DefineConstants>
+ <DefineConstants>UpgradeCode=1B68A0EC-4DD3-5134-840E-73854B0863F1;$(DefineConstants)</DefineConstants>
+ <IgnoreCommonWxlTemplates>true</IgnoreCommonWxlTemplates>
</PropertyGroup>
<Import Project="..\msi.props" />
<ItemGroup>
diff --git a/Tools/msi/launcher/launcher.wxs b/Tools/msi/launcher/launcher.wxs
index 718b666..80e838a 100644
--- a/Tools/msi/launcher/launcher.wxs
+++ b/Tools/msi/launcher/launcher.wxs
@@ -5,7 +5,6 @@
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
<Property Id="Suppress_TARGETDIR_Check" Value="1" />
- <PropertyRef Id="UpgradeTable" />
<PropertyRef Id="ARPPRODUCTICON" />
<Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
@@ -27,12 +26,18 @@
<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>
+ <RemoveExistingProducts After="InstallValidate">UPGRADE or REMOVE_350_LAUNCHER</RemoveExistingProducts>
</InstallExecuteSequence>
- <!-- Python 3.5.0 shipped with an incorrect UpgradeCode -->
+ <!-- Python 3.5.0 shipped with a different UpgradeCode -->
<Upgrade Id="A71530B9-E89D-53DB-9C2D-C6D7551876D8">
- <UpgradeVersion Maximum="$(var.Version)" Property="REMOVE_OLD_LAUNCHER" />
+ <UpgradeVersion Minimum="0.0.0.0" Property="REMOVE_350_LAUNCHER" />
</Upgrade>
+ <!-- Python 3.6.0a1 shipped with a different UpgradeCode -->
+ <Upgrade Id="394750C0-7880-5A8F-999F-933965FBCFB4">
+ <UpgradeVersion Maximum="$(var.Version)" Property="REMOVE_360A1_LAUNCHER" />
+ <UpgradeVersion Minimum="$(var.Version)" Property="BLOCK_360A1_LAUNCHER" />
+ </Upgrade>
+ <Condition Message="!(loc.NoDowngrade)">Installed OR NOT BLOCK_360A1_LAUNCHER</Condition>
</Product>
</Wix>
diff --git a/Tools/msi/launcher/launcher_en-US.wxl b/Tools/msi/launcher/launcher_en-US.wxl
index d961fff..e4c1aaa 100644
--- a/Tools/msi/launcher/launcher_en-US.wxl
+++ b/Tools/msi/launcher/launcher_en-US.wxl
@@ -1,7 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
- <String Id="Descriptor">Launcher</String>
- <String Id="ShortDescriptor">launcher</String>
+ <String Id="LCID">1033</String>
+ <String Id="Culture">en-us</String>
+ <String Id="ProductName">Python Launcher</String>
+ <String Id="Title">Python Launcher</String>
+ <String Id="Description">Python Launcher</String>
+ <String Id="Manufacturer">Python Software Foundation</String>
+ <String Id="NoDowngrade">A newer version of the Python launcher is already installed.</String>
+ <String Id="NoTargetDir">The TARGETDIR variable must be provided when invoking this installer.</String>
<String Id="PythonFileDescription">Python File</String>
<String Id="PythonNoConFileDescription">Python File (no console)</String>
<String Id="PythonCompiledFileDescription">Compiled Python File</String>
diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props
index bbb8aeb..9ae6d99 100644
--- a/Tools/msi/msi.props
+++ b/Tools/msi/msi.props
@@ -39,7 +39,7 @@
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)common.wxs" />
- <WxlTemplate Include="$(MSBuildThisFileDirectory)\*.wxl_template" />
+ <WxlTemplate Include="$(MSBuildThisFileDirectory)\*.wxl_template" Condition="$(IgnoreCommonWxlTemplates) != 'true'" />
<WixExtension Include="WixUtilExtension">
<HintPath>WixUtilExtension</HintPath>
<Name>WixUtilExtension</Name>
@@ -150,7 +150,7 @@
<Uri>lib2to3/pickles</Uri>
</_Uuid>
</ItemGroup>
- <Target Name="_GenerateGuids" AfterTargets="PrepareForBuild">
+ <Target Name="_GenerateGuids" AfterTargets="PrepareForBuild" Condition="$(TargetName) != 'launcher'">
<PropertyGroup>
<_Uuids>@(_Uuid->'("%(Identity)", "$(MajorVersionNumber).$(MinorVersionNumber)/%(Uri)")',',')</_Uuids>
<_GenerateCommand>import uuid; print('\n'.join('{}={}'.format(i, uuid.uuid5(uuid.UUID('c8d9733e-a70c-43ff-ab0c-e26456f11083'), '$(ReleaseUri.Replace(`{arch}`, `$(ArchName)`))' + j)) for i,j in [$(_Uuids.Replace(`"`,`'`))]))</_GenerateCommand>
diff --git a/Tools/msi/msi.targets b/Tools/msi/msi.targets
index a40d9c4..86be35b 100644
--- a/Tools/msi/msi.targets
+++ b/Tools/msi/msi.targets
@@ -25,7 +25,7 @@
</Target>
<Target Name="_TransformWxlTemplates" AfterTargets="PrepareForBuild" Inputs="@(WxlTemplate);$(PySourcePath)include\patchlevel.h" Outputs="$(IntermediateOutputPath)%(Filename).wxl">
- <PropertyGroup>
+ <PropertyGroup Condition="'@(WxlTemplate)' != ''">
<_Content>$([System.IO.File]::ReadAllText(%(WxlTemplate.FullPath)).Replace(`{{ShortVersion}}`, `$(MajorVersionNumber).$(MinorVersionNumber)$(PyTestExt)`).Replace(`{{LongVersion}}`, `$(PythonVersion)$(PyTestExt)`).Replace(`{{Bitness}}`, `$(Bitness)`))</_Content>
<_ExistingContent Condition="Exists('$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl')">$([System.IO.File]::ReadAllText($(IntermediateOutputPath)%(WxlTemplate.Filename).wxl))</_ExistingContent>
</PropertyGroup>
@@ -35,7 +35,7 @@
Overwrite="true"
Condition="$(_Content) != $(_ExistingContent)" />
- <ItemGroup>
+ <ItemGroup Condition="'@(WxlTemplate)' != ''">
<EmbeddedResource Include="$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl" />
<FileWrites Include="$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl" />
</ItemGroup>