]> granicus.if.org Git - python/commitdiff
Fixes installer rebuild, snapshot versioning, and the README.txt file.
authorSteve Dower <steve.dower@microsoft.com>
Thu, 9 Jul 2015 05:43:48 +0000 (22:43 -0700)
committerSteve Dower <steve.dower@microsoft.com>
Thu, 9 Jul 2015 05:43:48 +0000 (22:43 -0700)
Tools/msi/README.txt
Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
Tools/msi/bundle/bundle.targets
Tools/msi/msi.props

index 1e41cc1f6caab45cf1491facfebd6b74960d49e0..25dcf32c2c465ba0f33a0886f76e688fdd6dc901 100644 (file)
@@ -9,7 +9,7 @@ script:
 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 @@ and extracted to the externals/ directory.
 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 @@ interest:
     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 @@ install directory.
 
 .\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 @@ For 32-bit interpreters installed for the current user:
 
 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
index 728355930a4cde8ec2bf53af5c4bb085cb9d8e63..21663041378d4a689db4dcee08777c3a4a37a172 100644 (file)
@@ -291,6 +291,7 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication {
             hr = BalGetStringVariable(L"TargetDir", &targetDir);
             if (FAILED(hr) || !targetDir || !targetDir[0]) {
                 ReleaseStr(targetDir);
+                targetDir = nullptr;
 
                 hr = BalGetStringVariable(
                     installAllUsers ? L"DefaultAllUsersTargetDir" : L"DefaultJustForMeTargetDir",
index 363c4e3efa2218c36404741403ab31e55a03551e..1ff00015b95e80d9203ab829fdd02077d1512afb 100644 (file)
         <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'">
index 1d9f0f0df1deedd827393de0d81c79d138579a87..2d13aef698776d77b5f05ff38f3a194549e71377 100644 (file)
         <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);