[Python-checkins] bpo-37283: Ensure command-line and unattend.xml setting override previously detected states in Windows installer (GH-15759)
Miss Islington (bot)
webhook-mailer at python.org
Mon Sep 9 09:15:31 EDT 2019
https://github.com/python/cpython/commit/d3b8a6bf7c5f7574a3256468c4d0a755ba7a9048
commit: d3b8a6bf7c5f7574a3256468c4d0a755ba7a9048
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2019-09-09T06:15:27-07:00
summary:
bpo-37283: Ensure command-line and unattend.xml setting override previously detected states in Windows installer (GH-15759)
(cherry picked from commit 3a0ddbcdfcbc0f4372905fabf81e093f1b043e99)
Co-authored-by: Steve Dower <steve.dower at python.org>
files:
A Misc/NEWS.d/next/Windows/2019-09-09-12-22-23.bpo-37283.8NvOkU.rst
M Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
M Tools/msi/bundle/bundle.wxs
diff --git a/Misc/NEWS.d/next/Windows/2019-09-09-12-22-23.bpo-37283.8NvOkU.rst b/Misc/NEWS.d/next/Windows/2019-09-09-12-22-23.bpo-37283.8NvOkU.rst
new file mode 100644
index 000000000000..973047839301
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2019-09-09-12-22-23.bpo-37283.8NvOkU.rst
@@ -0,0 +1,2 @@
+Ensure command-line and unattend.xml setting override previously detected
+states in Windows installer.
diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
index 2e468b7e57b2..cd4a1f8feb1d 100644
--- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
+++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
@@ -727,9 +727,13 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication {
BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Failed to load AssociateFiles state: error code 0x%08X", hr);
}
- _engine->SetVariableNumeric(L"Include_launcher", 1);
+ LONGLONG includeLauncher;
+ if (FAILED(BalGetNumericVariable(L"Include_launcher", &includeLauncher))
+ || includeLauncher == -1) {
+ _engine->SetVariableNumeric(L"Include_launcher", 1);
+ _engine->SetVariableNumeric(L"InstallLauncherAllUsers", fPerMachine ? 1 : 0);
+ }
_engine->SetVariableNumeric(L"DetectedOldLauncher", 1);
- _engine->SetVariableNumeric(L"InstallLauncherAllUsers", fPerMachine ? 1 : 0);
}
return CheckCanceled() ? IDCANCEL : IDNOACTION;
}
@@ -796,6 +800,12 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication {
}
}
+ LONGLONG includeLauncher;
+ if (SUCCEEDED(BalGetNumericVariable(L"Include_launcher", &includeLauncher))
+ && includeLauncher != -1) {
+ detectedLauncher = FALSE;
+ }
+
if (detectedLauncher) {
/* When we detect the current version of the launcher. */
_engine->SetVariableNumeric(L"Include_launcher", 1);
@@ -819,6 +829,14 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication {
_baFunction->OnDetectComplete();
}
+ if (SUCCEEDED(hrStatus)) {
+ LONGLONG includeLauncher;
+ if (SUCCEEDED(BalGetNumericVariable(L"Include_launcher", &includeLauncher))
+ && includeLauncher == -1) {
+ _engine->SetVariableNumeric(L"Include_launcher", 1);
+ }
+ }
+
if (SUCCEEDED(hrStatus)) {
hrStatus = EvaluateConditions();
}
@@ -1451,6 +1469,10 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication {
hr = ParseOverridableVariablesFromXml(pixdManifest);
BalExitOnFailure(hr, "Failed to read overridable variables.");
+ if (_command.action == BOOTSTRAPPER_ACTION_MODIFY) {
+ LoadOptionalFeatureStates(_engine);
+ }
+
hr = ParseVariablesFromUnattendXml();
ExitOnFailure(hr, "Failed to read unattend.ini file.");
@@ -1478,10 +1500,6 @@ class PythonBootstrapperApplication : public CBalBaseBootstrapperApplication {
hr = UpdateUIStrings(_command.action);
BalExitOnFailure(hr, "Failed to load UI strings.");
- if (_command.action == BOOTSTRAPPER_ACTION_MODIFY) {
- LoadOptionalFeatureStates(_engine);
- }
-
GetBundleFileVersion();
// don't fail if we couldn't get the version info; best-effort only
LExit:
diff --git a/Tools/msi/bundle/bundle.wxs b/Tools/msi/bundle/bundle.wxs
index f6cff6fc351d..ddd6870f6255 100644
--- a/Tools/msi/bundle/bundle.wxs
+++ b/Tools/msi/bundle/bundle.wxs
@@ -71,11 +71,10 @@
<Variable Name="Include_tools" Value="1" bal:Overridable="yes" />
<Variable Name="Include_tcltk" Value="1" bal:Overridable="yes" />
<Variable Name="Include_pip" Value="1" bal:Overridable="yes" />
+ <Variable Name="Include_launcher" Value="-1" bal:Overridable="yes" />
<?if "$(var.PyTestExt)"="" ?>
- <Variable Name="Include_launcher" Value="1" bal:Overridable="yes" />
<Variable Name="Include_launcherState" Value="enabled" bal:Overridable="yes" />
<?else ?>
- <Variable Name="Include_launcher" Value="0" />
<Variable Name="Include_launcherState" Value="disable" />
<?endif ?>
<Variable Name="Include_symbols" Value="0" bal:Overridable="yes" />
More information about the Python-checkins
mailing list