diff options
| author | Eli Schwartz <eschwartz93@gmail.com> | 2023-09-08 16:54:48 -0400 |
|---|---|---|
| committer | Eli Schwartz <eschwartz93@gmail.com> | 2023-10-02 18:15:16 -0400 |
| commit | 9f610ad5b72ea91de2d7aeb6f3266d0a7477062e (patch) | |
| tree | 395b95014dbf45747e519d8dd8f1d177da03af95 | |
| parent | 710a753c78077220b13a9f7e999dcdb61339efb1 (diff) | |
| download | meson-9f610ad5b72ea91de2d7aeb6f3266d0a7477062e.tar.gz | |
python dependency: ensure that setuptools doesn't inject itself into distutils
We do not use setuptools for anything, and only lightly use distutils.
Unpredictable issues can occur due to setuptools monkey-patching, which
interferes with our intended use. Tell setuptools to simply never get
involved.
Note: while it's otherwise possible to check if the probe is run using
sys.executable and avoid forking, setuptools unconditionally injects
itself at startup in a way that requires subprocess isolation to
disable.
| -rw-r--r-- | mesonbuild/dependencies/python.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mesonbuild/dependencies/python.py b/mesonbuild/dependencies/python.py index efb904eca..fe778aff6 100644 --- a/mesonbuild/dependencies/python.py +++ b/mesonbuild/dependencies/python.py @@ -115,7 +115,9 @@ class BasicPythonExternalProgram(ExternalProgram): with importlib.resources.path('mesonbuild.scripts', 'python_info.py') as f: cmd = self.get_command() + [str(f)] - p, stdout, stderr = mesonlib.Popen_safe(cmd) + env = os.environ.copy() + env['SETUPTOOLS_USE_DISTUTILS'] = 'stdlib' + p, stdout, stderr = mesonlib.Popen_safe(cmd, env=env) try: info = json.loads(stdout) |
