[Python-checkins] cpython (merge 3.5 -> default): Merge from 3.5

steve.dower python-checkins at python.org
Sun Oct 11 21:05:45 EDT 2015


https://hg.python.org/cpython/rev/0452df4d63ba
changeset:   98698:0452df4d63ba
parent:      98696:2c384ba13fdd
parent:      98697:d503b27de2d9
user:        Steve Dower <steve.dower at microsoft.com>
date:        Sun Oct 11 18:05:27 2015 -0700
summary:
  Merge from 3.5

files:
  Tools/msi/bundle/Default.wxl                                 |   2 +-
  Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp |  16 ++++++++-
  Tools/msi/bundle/bundle.wxs                                  |   1 +
  3 files changed, 16 insertions(+), 3 deletions(-)


diff --git a/Tools/msi/bundle/Default.wxl b/Tools/msi/bundle/Default.wxl
--- a/Tools/msi/bundle/Default.wxl
+++ b/Tools/msi/bundle/Default.wxl
@@ -52,7 +52,7 @@
   <String Id="InstallSimpleButtonNote">Use settings preselected by your administrator
 
 [SimpleInstallDescription]</String>
-  <String Id="InstallUpgradeButton">&Upgrade Now</String>
+  <String Id="InstallUpgradeButton">Up&grade Now</String>
   <String Id="InstallUpgradeButtonNote">[TargetDir]
 
 Replaces your existing installation without changing settings.
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
@@ -674,6 +674,8 @@
                     hr
                 );
             }
+
+            LoadOptionalFeatureStates(_engine);
         } else if (BOOTSTRAPPER_RELATED_OPERATION_NONE == operation) {
             if (_command.action == BOOTSTRAPPER_ACTION_INSTALL) {
                 LOC_STRING *pLocString = nullptr;
@@ -2556,7 +2558,14 @@
 
     BOOL WillElevate() {
         static BAL_CONDITION WILL_ELEVATE_CONDITION = {
-            L"not WixBundleElevated and (InstallAllUsers or (InstallLauncherAllUsers and Include_launcher))",
+            L"not WixBundleElevated and ("
+                /*Elevate when installing for all users*/
+                L"InstallAllUsers or"
+                /*Elevate when installing the launcher for all users and it was not detected*/
+                L"(InstallLauncherAllUsers and Include_launcher and not DetectedLauncher) or"
+                /*Elevate when the launcher was installed for all users and it is being removed*/
+                L"(DetectedLauncher and DetectedLauncherAllUsers and not Include_launcher)"
+            L")",
             L""
         };
         BOOL result;
@@ -2884,6 +2893,10 @@
             pEngine->SetVariableNumeric(L"Include_launcher", 0);
         } else if (res == ERROR_SUCCESS) {
             pEngine->SetVariableNumeric(L"Include_launcher", 1);
+            pEngine->SetVariableNumeric(L"DetectedLauncher", 1);
+            pEngine->SetVariableNumeric(L"InstallLauncherAllUsers", (hkHive == HKEY_LOCAL_MACHINE) ? 1 : 0);
+            pEngine->SetVariableNumeric(L"DetectedLauncherAllUsers", (hkHive == HKEY_LOCAL_MACHINE) ? 1 : 0);
+            pEngine->SetVariableString(L"InstallLauncherAllUsersState", L"disable");
         }
 
         res = RegQueryValueExW(hKey, L"AssociateFiles", nullptr, nullptr, nullptr, nullptr);
@@ -3101,7 +3114,6 @@
         _hBAFModule = nullptr;
         _baFunction = nullptr;
 
-        LoadOptionalFeatureStates(pEngine);
         EnsureTargetDir();
     }
 
diff --git a/Tools/msi/bundle/bundle.wxs b/Tools/msi/bundle/bundle.wxs
--- a/Tools/msi/bundle/bundle.wxs
+++ b/Tools/msi/bundle/bundle.wxs
@@ -65,6 +65,7 @@
     <Variable Name="Include_debug" Value="0" bal:Overridable="yes" />
     
     <Variable Name="LauncherOnly" Value="0" bal:Overridable="yes" />
+    <Variable Name="DetectedLauncher" Value="0" />
     
     <Variable Name="AssociateFiles" Value="1" bal:Overridable="yes" />
     <Variable Name="Shortcuts" Value="1" bal:Overridable="yes" />

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


More information about the Python-checkins mailing list