[Python-checkins] cpython (merge 3.5 -> default): Fixes installer rebuild, snapshot versioning, and the README.txt file.

steve.dower python-checkins at python.org
Thu Jul 9 07:45:20 CEST 2015


https://hg.python.org/cpython/rev/e00c5c25b4dd
changeset:   96889:e00c5c25b4dd
parent:      96887:2a8a39640aa2
parent:      96888:f2b98a1a86ae
user:        Steve Dower <steve.dower at microsoft.com>
date:        Wed Jul 08 22:44:52 2015 -0700
summary:
  Fixes installer rebuild, snapshot versioning, and the README.txt file.

files:
  Tools/msi/README.txt                                         |  20 ++++++----
  Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp |   1 +
  Tools/msi/bundle/bundle.targets                              |  12 +++++-
  Tools/msi/msi.props                                          |  11 ++++-
  4 files changed, 32 insertions(+), 12 deletions(-)


diff --git a/Tools/msi/README.txt b/Tools/msi/README.txt
--- a/Tools/msi/README.txt
+++ b/Tools/msi/README.txt
@@ -9,7 +9,7 @@
 For an official release, the installer should be built with the
 Tools/msi/buildrelease.bat script and environment variables:
 
-    set PYTHON=<path to Python 2.7>
+    set PYTHON=<path to Python 2.7 or 3.4>
     set SPHINXBUILD=<path to sphinx-build.exe>
     set PATH=<path to Mercurial (hg.exe)>;
              <path to HTML Help Compiler (hhc.exe)>;%PATH%
@@ -87,7 +87,7 @@
 For an official release, the installer should be built with the
 Tools/msi/buildrelease.bat script:
 
-    set PYTHON=<path to Python 2.7>
+    set PYTHON=<path to Python 2.7 or 3.4>
     set SPHINXBUILD=<path to sphinx-build.exe>
     set PATH=<path to Mercurial (hg.exe)>;
              <path to HTML Help Compiler (hhc.exe)>;%PATH%
@@ -229,6 +229,11 @@
     Every package should reference this property to include upgrade
     information.
 
+  OptionalFeature (Component)
+    Packages that may be enabled or disabled should reference this component
+    and have an OPTIONAL_FEATURES entry in the bootstrap application to
+    properly handle Modify and Upgrade.
+
 The .wxl_template file is specially handled by the build system for this
 project to perform {{substitutions}} as defined in msi.targets. They
 should be included in projects as <WxlTemplate> items, where .wxl files
@@ -326,14 +331,11 @@
 
 .\python3x.dll      The core interpreter
 .\python3.dll       The stable ABI reference
-.\appcrt140.dll     Microsoft Visual C Runtime
-.\desktopcrt140.dll Microsoft Visual C Runtime
-.\vcruntime140.dll  Microsoft Visual C Runtime
 
 When installed for all users, the following files are installed to
 "%SystemRoot%" (typically "C:\Windows") to ensure they are always
 available on PATH. (See Launching Python below.) For the current user,
-they are installed in the Python install directory.
+they are installed in "%LocalAppData%\Programs\Python\PyLauncher".
 
 .\py[w].exe         PEP 397 launcher
 
@@ -363,8 +365,10 @@
 
 When the core Python executables are installed, a key "InstallPath" is
 created within the root key with its default value set to the
-executable's install directory. Within this key, a key "InstallGroup" is
-created with its default value set to the product name "Python 3.X".
+executable's install directory. A value named "ExecutablePath" is added
+with the full path to the main Python interpreter, and a key
+"InstallGroup" is created with its default value set to the product
+name "Python 3.X".
 
 When the Python standard library is installed, a key "PythonPath" is
 created within the root key with its default value set to the full path
diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
--- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
+++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
@@ -291,6 +291,7 @@
             hr = BalGetStringVariable(L"TargetDir", &targetDir);
             if (FAILED(hr) || !targetDir || !targetDir[0]) {
                 ReleaseStr(targetDir);
+                targetDir = nullptr;
 
                 hr = BalGetStringVariable(
                     installAllUsers ? L"DefaultAllUsersTargetDir" : L"DefaultJustForMeTargetDir",
diff --git a/Tools/msi/bundle/bundle.targets b/Tools/msi/bundle/bundle.targets
--- a/Tools/msi/bundle/bundle.targets
+++ b/Tools/msi/bundle/bundle.targets
@@ -72,8 +72,18 @@
         <Package Include="..\tools\tools*.wixproj" />
     </ItemGroup>
     
+    <PropertyGroup>
+        <BuildPackagesTargets>Build</BuildPackagesTargets>
+    </PropertyGroup>
+    
+    <Target Name="_SetRebuildTarget" BeforeTargets="BeforeRebuild">
+        <PropertyGroup>
+            <BuildPackagesTargets>Rebuild</BuildPackagesTargets>
+        </PropertyGroup>
+    </Target>
+    
     <Target Name="BuildPackages" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
-        <MSBuild Projects="@(Package)" BuildInParallel="true" />
+        <MSBuild Projects="@(Package)" Targets="$(BuildPackagesTargets)" BuildInParallel="true" />
     </Target>
     
     <Target Name="BuildLauncher" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props
--- a/Tools/msi/msi.props
+++ b/Tools/msi/msi.props
@@ -53,8 +53,13 @@
         <CRTRedist Condition="!Exists($(CRTRedist))"></CRTRedist>
         <DocFilename>python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
 
-        <RevisionNumber>$(ReleaseLevelNumber)</RevisionNumber>
-        <RevisionNumber Condition="!$(BuildForRelease)">$([System.Math]::Floor($([System.DateTime]::Now.Subtract($([System.DateTime]::new(2001, 1, 1))).TotalDays)))</RevisionNumber>
+        <InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0</InstallerVersion>
+    </PropertyGroup>
+    
+    <PropertyGroup Condition="!$(BuildForRelease)">
+        <RevisionNumber Condition="'$(RevisionNumber)' == ''">$([System.Math]::Floor($([System.DateTime]::Now.Subtract($([System.DateTime]::new(2001, 1, 1))).TotalDays)))</RevisionNumber>
+        <PythonVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)dev$(RevisionNumber)</PythonVersion>
+        <InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(RevisionNumber).0</InstallerVersion>
     </PropertyGroup>
     
     <PropertyGroup>
@@ -62,7 +67,7 @@
         <Bitness Condition="$(Platform) == 'x64'">64-bit</Bitness>
         <DefineConstants>
             $(DefineConstants);
-            Version=$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0;
+            Version=$(InstallerVersion);
             ShortVersion=$(MajorVersionNumber).$(MinorVersionNumber);
             LongVersion=$(PythonVersion);
             MajorVersionNumber=$(MajorVersionNumber);

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


More information about the Python-checkins mailing list