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

steve.dower python-checkins at python.org
Sat Jul 18 18:30:09 CEST 2015


https://hg.python.org/cpython/rev/21839c82419b
changeset:   96939:21839c82419b
parent:      96935:d6c91b8242d2
parent:      96938:9f60ec6d6586
user:        Steve Dower <steve.dower at microsoft.com>
date:        Sat Jul 18 09:29:03 2015 -0700
summary:
  Merge with 3.5

files:
  Doc/using/windows.rst                                        |  17 +
  Tools/msi/bundle/Default.thm                                 |   2 +-
  Tools/msi/bundle/Default.wxl                                 |  19 +-
  Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp |  93 +++++++++-
  Tools/msi/bundle/bundle.wxs                                  |   2 +
  Tools/msi/bundle/packagegroups/core.wxs                      |  12 +-
  Tools/msi/bundle/packagegroups/crt.wxs                       |   4 +-
  Tools/msi/bundle/packagegroups/dev.wxs                       |   8 +-
  Tools/msi/bundle/packagegroups/doc.wxs                       |   4 +-
  Tools/msi/bundle/packagegroups/exe.wxs                       |  12 +-
  Tools/msi/bundle/packagegroups/lib.wxs                       |  12 +-
  Tools/msi/bundle/packagegroups/postinstall.wxs               |  12 +-
  Tools/msi/bundle/packagegroups/tcltk.wxs                     |  12 +-
  Tools/msi/bundle/packagegroups/test.wxs                      |  12 +-
  Tools/msi/bundle/packagegroups/tools.wxs                     |   4 +-
  15 files changed, 167 insertions(+), 58 deletions(-)


diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst
--- a/Doc/using/windows.rst
+++ b/Doc/using/windows.rst
@@ -146,6 +146,9 @@
 +---------------------------+--------------------------------------+--------------------------+
 | Include_tools             | Install utility scripts              | 1                        |
 +---------------------------+--------------------------------------+--------------------------+
+| LauncherOnly              | Only installs the launcher. This     | 0                        |
+|                           | will override most other options.    |                          |
++---------------------------+--------------------------------------+--------------------------+
 | SimpleInstall             | Disable most install UI              | 0                        |
 +---------------------------+--------------------------------------+--------------------------+
 | SimpleInstallDescription  | A custom message to display when the | (empty)                  |
@@ -168,6 +171,20 @@
 recommended for per-user installs when there is also a system-wide installation
 that included the launcher.)
 
+The options listed above can also be provided in a file named ``unattend.xml``
+alongside the executable. This file specifies a list of options and values.
+When a value is provided as an attribute, it will be converted to a number if
+possible. Values provided as element text are always left as strings. This
+example file sets the same options and the previous example::
+
+    <Options>
+        <Option Name="InstallAllUsers" Value="no" />
+        <Option Name="Include_launcher" Value="0" />
+        <Option Name="Include_test" Value="no" />
+        <Option Name="SimpleInstall" Value="yes" />
+        <Option Name="SimpleInstallDescription">Just for me, no test suite</Option>
+    </Options>
+
 .. _install-layout-option:
 
 Installing Without Downloading
diff --git a/Tools/msi/bundle/Default.thm b/Tools/msi/bundle/Default.thm
--- a/Tools/msi/bundle/Default.thm
+++ b/Tools/msi/bundle/Default.thm
@@ -12,7 +12,7 @@
         <Text X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.HelpHeader)</Text>
         <Image X="0" Y="0" Width="162" Height="352" ImageFile="SideBar.png"/>
 
-        <Text X="185" Y="50" Width="-11" Height="-35" FontId="3" DisablePrefix="yes">#(loc.HelpText)</Text>
+        <Hypertext X="185" Y="50" Width="-11" Height="-35" FontId="3" DisablePrefix="yes">#(loc.HelpText)</Hypertext>
         <Button Name="SuccessCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.CloseButton)</Button>
     </Page>
     <Page Name="Install">
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
@@ -26,20 +26,19 @@
   <String Id="ConfirmCancelMessage">Are you sure you want to cancel?</String>
   <String Id="ExecuteUpgradeRelatedBundleMessage">Previous version</String>
   <String Id="HelpHeader">Setup Help</String>
-  <String Id="HelpText">/uninstall
-    Uninstalls Python without prompting for confirmation.
+  <String Id="HelpText">Visit <a href="http://docs.python.org/[ShortVersion]/using/windows.html">docs.python.org/[ShortVersion]/using/windows.html</a> for the full list of options, including the ability to enable and disable specific features.
 
-/layout [\[]directory[\]]
-    Downloads all components for offline installation.
+"/passive" to display progress without requiring user interaction
 
-/passive
-    Displays progress without requiring user interaction.
+"/quiet" to install/uninstall without displaying any UI
 
-/quiet
-    Performs the requested action without displaying any UI.
+"/simple" to prevent user customization
 
-/log [\[]filename[\]]
-    Logs to a specific file. By default, log files are created in %TEMP%.</String>
+"/uninstall" to remove Python (without confirmation)
+
+"/layout [\[]directory[\]]" to pre-download all components
+
+"/log [\[]filename[\]]" to specify log files location</String>
   <String Id="InstallLicenseLinkText">[WixBundleName] <a href="#">license terms</a>.</String>
   <String Id="InstallAcceptCheckbox">I &agree to the license terms and conditions</String>
   <String Id="InstallButton">&Install Now</String>
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
@@ -1249,6 +1249,92 @@
         return hr;
     }
 
+    //
+    // ParseVariablesFromUnattendXml - reads options from unattend.xml if it
+    // exists
+    //
+    HRESULT ParseVariablesFromUnattendXml() {
+        HRESULT hr = S_OK;
+        LPWSTR sczUnattendXmlPath = nullptr;
+        IXMLDOMDocument *pixdUnattend = nullptr;
+        IXMLDOMNodeList *pNodes = nullptr;
+        IXMLDOMNode *pNode = nullptr;
+        long cNodes;
+        DWORD dwAttr;
+        LPWSTR scz = nullptr;
+        BOOL bValue;
+        int iValue;
+        BOOL tryConvert;
+        BSTR bstrValue = nullptr;
+
+        hr = BalFormatString(L"[WixBundleOriginalSourceFolder]unattend.xml", &sczUnattendXmlPath);
+        BalExitOnFailure(hr, "Failed to calculate path to unattend.xml");
+
+        if (!FileExistsEx(sczUnattendXmlPath, &dwAttr)) {
+            BalLog(BOOTSTRAPPER_LOG_LEVEL_VERBOSE, "Did not find %ls", sczUnattendXmlPath);
+            hr = S_FALSE;
+            goto LExit;
+        }
+
+        hr = XmlLoadDocumentFromFile(sczUnattendXmlPath, &pixdUnattend);
+        BalExitOnFailure1(hr, "Failed to read %ls", sczUnattendXmlPath);
+
+        // get the list of variables users have overridden
+        hr = XmlSelectNodes(pixdUnattend, L"/Options/Option", &pNodes);
+        if (S_FALSE == hr) {
+            ExitFunction1(hr = S_OK);
+        }
+        BalExitOnFailure(hr, "Failed to select option nodes.");
+
+        hr = pNodes->get_length((long*)&cNodes);
+        BalExitOnFailure(hr, "Failed to get option node count.");
+
+        BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Reading settings from %ls", sczUnattendXmlPath);
+
+        for (DWORD i = 0; i < cNodes; ++i) {
+            hr = XmlNextElement(pNodes, &pNode, nullptr);
+            BalExitOnFailure(hr, "Failed to get next node.");
+
+            // @Name
+            hr = XmlGetAttributeEx(pNode, L"Name", &scz);
+            BalExitOnFailure(hr, "Failed to get @Name.");
+
+            tryConvert = TRUE;
+            hr = XmlGetAttribute(pNode, L"Value", &bstrValue);
+            if (FAILED(hr) || !bstrValue || !*bstrValue) {
+                hr = XmlGetText(pNode, &bstrValue);
+                tryConvert = FALSE;
+            }
+            BalExitOnFailure(hr, "Failed to get @Value.");
+
+            if (tryConvert &&
+                CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, bstrValue, -1, L"yes", -1)) {
+                _engine->SetVariableNumeric(scz, 1);
+            } else if (tryConvert &&
+                       CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, bstrValue, -1, L"no", -1)) {
+                _engine->SetVariableNumeric(scz, 0);
+            } else if (tryConvert && ::StrToIntExW(bstrValue, STIF_DEFAULT, &iValue)) {
+                _engine->SetVariableNumeric(scz, iValue);
+            } else {
+                _engine->SetVariableString(scz, bstrValue);
+            }
+
+            ReleaseNullBSTR(bstrValue);
+            ReleaseNullStr(scz);
+            ReleaseNullObject(pNode);
+        }
+
+        BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Finished reading from %ls", sczUnattendXmlPath);
+
+    LExit:
+        ReleaseObject(pNode);
+        ReleaseObject(pNodes);
+        ReleaseObject(pixdUnattend);
+        ReleaseStr(sczUnattendXmlPath);
+
+        return hr;
+    }
+
 
     //
     // InitializeData - initializes all the package information.
@@ -1264,6 +1350,9 @@
         hr = ParseOverridableVariablesFromXml(pixdManifest);
         BalExitOnFailure(hr, "Failed to read overridable variables.");
 
+        hr = ParseVariablesFromUnattendXml();
+        ExitOnFailure(hr, "Failed to read unattend.ini file.");
+
         hr = ProcessCommandLine(&_language);
         ExitOnFailure(hr, "Unknown commandline parameters.");
 
@@ -1323,7 +1412,9 @@
 
                         hr = StrAllocString(psczLanguage, &argv[i][0], 0);
                         BalExitOnFailure(hr, "Failed to copy language.");
-                    } 
+                    } else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"simple", -1)) {
+                        _engine->SetVariableNumeric(L"SimpleInstall", 1);
+                    }
                 } else if (_overridableVariables) {
                     int value;
                     const wchar_t* pwc = wcschr(argv[i], L'=');
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
@@ -64,6 +64,8 @@
     <Variable Name="Include_symbols" Value="0" bal:Overridable="yes" />
     <Variable Name="Include_debug" Value="0" bal:Overridable="yes" />
     
+    <Variable Name="LauncherOnly" Value="0" bal:Overridable="yes" />
+    
     <Variable Name="AssociateFiles" Value="1" bal:Overridable="yes" />
     <Variable Name="Shortcuts" Value="1" bal:Overridable="yes" />
     <Variable Name="PrependPath" Value="0" bal:Overridable="yes" />
diff --git a/Tools/msi/bundle/packagegroups/core.wxs b/Tools/msi/bundle/packagegroups/core.wxs
--- a/Tools/msi/bundle/packagegroups/core.wxs
+++ b/Tools/msi/bundle/packagegroups/core.wxs
@@ -7,7 +7,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip)">
+                        InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -16,7 +16,7 @@
                         Compressed="$(var.CompressPDB)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_symbols">
+                        InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -25,7 +25,7 @@
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_debug">
+                        InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -35,7 +35,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip)">
+                        InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -44,7 +44,7 @@
                         Compressed="$(var.CompressPDB)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_symbols">
+                        InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -53,7 +53,7 @@
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_debug">
+                        InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
diff --git a/Tools/msi/bundle/packagegroups/crt.wxs b/Tools/msi/bundle/packagegroups/crt.wxs
--- a/Tools/msi/bundle/packagegroups/crt.wxs
+++ b/Tools/msi/bundle/packagegroups/crt.wxs
@@ -31,7 +31,7 @@
                         Description="!(loc.CRTDescription)"
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
-                        InstallCondition="not CRTInstalled and VersionNT = $(var.ver) and not VersionNT64 and (Include_core or Include_exe or Include_launcher or Include_pip)" />
+                        InstallCondition="not CRTInstalled and VersionNT = $(var.ver) and not VersionNT64 and (Include_core or Include_exe or Include_launcher or Include_pip) and not LauncherOnly" />
 
             <MsuPackage Id="crt_14.0_$(var.ver)_x64"
                         KB="2999226"
@@ -40,7 +40,7 @@
                         Description="!(loc.CRTDescription)"
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
-                        InstallCondition="not CRTInstalled and VersionNT64 = $(var.ver) and (Include_core or Include_exe or Include_launcher or Include_pip)" />
+                        InstallCondition="not CRTInstalled and VersionNT64 = $(var.ver) and (Include_core or Include_exe or Include_launcher or Include_pip) and not LauncherOnly" />
         </PackageGroup>
     </Fragment>
 
diff --git a/Tools/msi/bundle/packagegroups/dev.wxs b/Tools/msi/bundle/packagegroups/dev.wxs
--- a/Tools/msi/bundle/packagegroups/dev.wxs
+++ b/Tools/msi/bundle/packagegroups/dev.wxs
@@ -7,7 +7,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_dev">
+                        InstallCondition="InstallAllUsers and Include_dev and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -16,7 +16,7 @@
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_dev and Include_debug">
+                        InstallCondition="InstallAllUsers and Include_dev and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -26,7 +26,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_dev">
+                        InstallCondition="not InstallAllUsers and Include_dev and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -35,7 +35,7 @@
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_dev and Include_debug">
+                        InstallCondition="not InstallAllUsers and Include_dev and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
diff --git a/Tools/msi/bundle/packagegroups/doc.wxs b/Tools/msi/bundle/packagegroups/doc.wxs
--- a/Tools/msi/bundle/packagegroups/doc.wxs
+++ b/Tools/msi/bundle/packagegroups/doc.wxs
@@ -8,7 +8,7 @@
                         DownloadUrl="$(var.DownloadUrl)"
                         EnableFeatureSelection="yes"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_doc">
+                        InstallCondition="InstallAllUsers and Include_doc and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -19,7 +19,7 @@
                         DownloadUrl="$(var.DownloadUrl)"
                         EnableFeatureSelection="yes"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_doc">
+                        InstallCondition="not InstallAllUsers and Include_doc and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
diff --git a/Tools/msi/bundle/packagegroups/exe.wxs b/Tools/msi/bundle/packagegroups/exe.wxs
--- a/Tools/msi/bundle/packagegroups/exe.wxs
+++ b/Tools/msi/bundle/packagegroups/exe.wxs
@@ -8,7 +8,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         EnableFeatureSelection="yes"
-                        InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip)">
+                        InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -17,7 +17,7 @@
                         ForcePerMachine="yes"
                         Compressed="$(var.CompressPDB)"
                         DownloadUrl="$(var.DownloadUrl)"
-                        InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_symbols">
+                        InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -26,7 +26,7 @@
                         ForcePerMachine="yes"
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
-                        InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_debug">
+                        InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -37,7 +37,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         EnableFeatureSelection="yes"
-                        InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip)">
+                        InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -46,7 +46,7 @@
                         ForcePerMachine="no"
                         Compressed="$(var.CompressPDB)"
                         DownloadUrl="$(var.DownloadUrl)"
-                        InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_symbols">
+                        InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -55,7 +55,7 @@
                         ForcePerMachine="no"
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
-                        InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_debug">
+                        InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
diff --git a/Tools/msi/bundle/packagegroups/lib.wxs b/Tools/msi/bundle/packagegroups/lib.wxs
--- a/Tools/msi/bundle/packagegroups/lib.wxs
+++ b/Tools/msi/bundle/packagegroups/lib.wxs
@@ -7,7 +7,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_lib">
+                        InstallCondition="InstallAllUsers and Include_lib and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -16,7 +16,7 @@
                         Compressed="$(var.CompressPDB)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_lib and Include_symbols">
+                        InstallCondition="InstallAllUsers and Include_lib and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -25,7 +25,7 @@
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_lib and Include_debug">
+                        InstallCondition="InstallAllUsers and Include_lib and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -35,7 +35,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_lib">
+                        InstallCondition="not InstallAllUsers and Include_lib and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -44,7 +44,7 @@
                         Compressed="$(var.CompressPDB)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_lib and Include_symbols">
+                        InstallCondition="not InstallAllUsers and Include_lib and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -53,7 +53,7 @@
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_lib and Include_debug">
+                        InstallCondition="not InstallAllUsers and Include_lib and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
diff --git a/Tools/msi/bundle/packagegroups/postinstall.wxs b/Tools/msi/bundle/packagegroups/postinstall.wxs
--- a/Tools/msi/bundle/packagegroups/postinstall.wxs
+++ b/Tools/msi/bundle/packagegroups/postinstall.wxs
@@ -7,7 +7,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_pip">
+                        InstallCondition="InstallAllUsers and Include_pip and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -16,7 +16,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_pip">
+                        InstallCondition="not InstallAllUsers and Include_pip and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -26,7 +26,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and PrependPath">
+                        InstallCondition="InstallAllUsers and PrependPath and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -35,7 +35,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and PrependPath">
+                        InstallCondition="not InstallAllUsers and PrependPath and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -50,7 +50,7 @@
                         Permanent="yes"
                         PerMachine="yes"
                         Vital="no"
-                        InstallCondition="InstallAllUsers and CompileAll" />
+                        InstallCondition="InstallAllUsers and CompileAll and not LauncherOnly" />
             <ExePackage Id="compileall_JustForMe"
                         SourceFile="py.exe"
                         Compressed="yes"
@@ -60,7 +60,7 @@
                         Permanent="yes"
                         PerMachine="no"
                         Vital="no"
-                        InstallCondition="not InstallAllUsers and CompileAll" />
+                        InstallCondition="not InstallAllUsers and CompileAll and not LauncherOnly" />
         </PackageGroup>
     </Fragment>
 </Wix>
\ No newline at end of file
diff --git a/Tools/msi/bundle/packagegroups/tcltk.wxs b/Tools/msi/bundle/packagegroups/tcltk.wxs
--- a/Tools/msi/bundle/packagegroups/tcltk.wxs
+++ b/Tools/msi/bundle/packagegroups/tcltk.wxs
@@ -8,7 +8,7 @@
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
                         EnableFeatureSelection="yes"
-                        InstallCondition="InstallAllUsers and Include_tcltk">
+                        InstallCondition="InstallAllUsers and Include_tcltk and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -18,7 +18,7 @@
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
                         EnableFeatureSelection="yes"
-                        InstallCondition="InstallAllUsers and Include_tcltk and Include_symbols">
+                        InstallCondition="InstallAllUsers and Include_tcltk and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -28,7 +28,7 @@
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
                         EnableFeatureSelection="yes"
-                        InstallCondition="InstallAllUsers and Include_tcltk and Include_debug">
+                        InstallCondition="InstallAllUsers and Include_tcltk and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -39,7 +39,7 @@
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
                         EnableFeatureSelection="yes"
-                        InstallCondition="not InstallAllUsers and Include_tcltk">
+                        InstallCondition="not InstallAllUsers and Include_tcltk and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -49,7 +49,7 @@
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
                         EnableFeatureSelection="yes"
-                        InstallCondition="not InstallAllUsers and Include_tcltk and Include_symbols">
+                        InstallCondition="not InstallAllUsers and Include_tcltk and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -59,7 +59,7 @@
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
                         EnableFeatureSelection="yes"
-                        InstallCondition="not InstallAllUsers and Include_tcltk and Include_debug">
+                        InstallCondition="not InstallAllUsers and Include_tcltk and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
diff --git a/Tools/msi/bundle/packagegroups/test.wxs b/Tools/msi/bundle/packagegroups/test.wxs
--- a/Tools/msi/bundle/packagegroups/test.wxs
+++ b/Tools/msi/bundle/packagegroups/test.wxs
@@ -7,7 +7,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_test">
+                        InstallCondition="InstallAllUsers and Include_test and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -16,7 +16,7 @@
                         Compressed="$(var.CompressPDB)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_test and Include_symbols">
+                        InstallCondition="InstallAllUsers and Include_test and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -25,7 +25,7 @@
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_test and Include_debug">
+                        InstallCondition="InstallAllUsers and Include_test and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -35,7 +35,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_test">
+                        InstallCondition="not InstallAllUsers and Include_test and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -44,7 +44,7 @@
                         Compressed="$(var.CompressPDB)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_test and Include_symbols">
+                        InstallCondition="not InstallAllUsers and Include_test and Include_symbols and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -53,7 +53,7 @@
                         Compressed="$(var.CompressMSI_D)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_test and Include_debug">
+                        InstallCondition="not InstallAllUsers and Include_test and Include_debug and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
diff --git a/Tools/msi/bundle/packagegroups/tools.wxs b/Tools/msi/bundle/packagegroups/tools.wxs
--- a/Tools/msi/bundle/packagegroups/tools.wxs
+++ b/Tools/msi/bundle/packagegroups/tools.wxs
@@ -7,7 +7,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="yes"
-                        InstallCondition="InstallAllUsers and Include_tools">
+                        InstallCondition="InstallAllUsers and Include_tools and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>
@@ -17,7 +17,7 @@
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
                         ForcePerMachine="no"
-                        InstallCondition="not InstallAllUsers and Include_tools">
+                        InstallCondition="not InstallAllUsers and Include_tools and not LauncherOnly">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
                 <MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
             </MsiPackage>

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


More information about the Python-checkins mailing list