summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Vincent <377567+Vynce@users.noreply.github.com>2024-05-22 17:59:47 (GMT)
committerGitHub <noreply@github.com>2024-05-22 17:59:47 (GMT)
commitc9073eb1a99606df1efeb8959e9f11a8ebc23ae2 (patch)
treea906718f71bef84701c2edac7a7dd15c839867dd
parentbaf347d91643a83483bae110092750d39471e0c2 (diff)
downloadcpython-c9073eb1a99606df1efeb8959e9f11a8ebc23ae2.zip
cpython-c9073eb1a99606df1efeb8959e9f11a8ebc23ae2.tar.gz
cpython-c9073eb1a99606df1efeb8959e9f11a8ebc23ae2.tar.bz2
gh-117505: Run ensurepip in isolated env in Windows installer (GH-118257)
ensurepip forks a subprocess to run pip itself, but that subprocess only inherits a -I isolated mode flag (see _run_pip() in Lib/ensurepip/__init__.py), not the "-E -s" flags that the installer has been using. This means that parts of ensurepip don't actually run in an isolated environment and can make incorrect decisions based on packages installed in the user site-packages.
-rw-r--r--Misc/NEWS.d/next/Windows/2024-04-24-22-50-33.gh-issue-117505.gcTb_p.rst1
-rw-r--r--Tools/msi/pip/pip.wxs4
2 files changed, 3 insertions, 2 deletions
diff --git a/Misc/NEWS.d/next/Windows/2024-04-24-22-50-33.gh-issue-117505.gcTb_p.rst b/Misc/NEWS.d/next/Windows/2024-04-24-22-50-33.gh-issue-117505.gcTb_p.rst
new file mode 100644
index 0000000..0931687
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2024-04-24-22-50-33.gh-issue-117505.gcTb_p.rst
@@ -0,0 +1 @@
+Fixes an issue with the Windows installer not running ensurepip in a fully isolated environment. This could cause unexpected interactions with the user site-packages.
diff --git a/Tools/msi/pip/pip.wxs b/Tools/msi/pip/pip.wxs
index 1d8083c..627c471 100644
--- a/Tools/msi/pip/pip.wxs
+++ b/Tools/msi/pip/pip.wxs
@@ -25,8 +25,8 @@
<?endif ?>
<!-- Install/uninstall pip -->
- <CustomAction Id="SetUpdatePipCommandLine" Property="UpdatePip" Value='"[PYTHON_EXE]" -E -s -m ensurepip -U --default-pip' Execute="immediate" />
- <CustomAction Id="SetRemovePipCommandLine" Property="UpdatePip" Value='"[PYTHON_EXE]" -E -s -B -m ensurepip._uninstall' Execute="immediate" />
+ <CustomAction Id="SetUpdatePipCommandLine" Property="UpdatePip" Value='"[PYTHON_EXE]" -I -m ensurepip -U --default-pip' Execute="immediate" />
+ <CustomAction Id="SetRemovePipCommandLine" Property="UpdatePip" Value='"[PYTHON_EXE]" -I -B -m ensurepip._uninstall' Execute="immediate" />
<InstallExecuteSequence>
<Custom Action="SetUpdatePipCommandLine" Before="UpdatePip">(&amp;DefaultFeature=3) AND NOT (!DefaultFeature=3)</Custom>