From 4e0e43b0da59a484ba4fda82c99b6fe5c37a13ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= Date: Wed, 4 Jan 2023 07:49:17 -0800 Subject: [PATCH] Add more c-extension env-vars to default pass_env MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bernát Gábor --- docs/changelog/2818.bugfix.rst | 2 ++ src/tox/tox_env/api.py | 2 ++ src/tox/tox_env/python/api.py | 3 ++- tests/session/cmd/test_show_config.py | 5 +++-- 4 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 docs/changelog/2818.bugfix.rst diff --git a/docs/changelog/2818.bugfix.rst b/docs/changelog/2818.bugfix.rst new file mode 100644 index 0000000000..ff4caf7e8b --- /dev/null +++ b/docs/changelog/2818.bugfix.rst @@ -0,0 +1,2 @@ +Add ``CC``, ``CCSHARED``, ``PKG_CONFIG`` and ``PKG_CONFIG_SYSROOT_DIR`` to the default passed through environment +variables list as these are needed for building various C-extensions - by :user:`gaborbernat`. diff --git a/src/tox/tox_env/api.py b/src/tox/tox_env/api.py index 3ce15b993b..51c57fde3b 100644 --- a/src/tox/tox_env/api.py +++ b/src/tox/tox_env/api.py @@ -212,6 +212,8 @@ def _default_pass_env(self) -> list[str]: "CURL_CA_BUNDLE", # curl certificates "SSL_CERT_FILE", # https certificates "LD_LIBRARY_PATH", # location of libs + "CC", # location of compiler + "CCSHARED", # location of compiler files ] if sys.stdout.isatty(): # if we're on a interactive shell pass on the TERM env.append("TERM") diff --git a/src/tox/tox_env/python/api.py b/src/tox/tox_env/python/api.py index 9772a9412f..9a8ff6ce3f 100644 --- a/src/tox/tox_env/python/api.py +++ b/src/tox/tox_env/python/api.py @@ -118,7 +118,8 @@ def _default_pass_env(self) -> list[str]: "NUMBER_OF_PROCESSORS", # multiprocessing.cpu_count() ], ) - env.extend(["PKG_CONFIG_PATH"]) # used by binary extensions during installation + binary_extension_build = ["PKG_CONFIG", "PKG_CONFIG_PATH", "PKG_CONFIG_SYSROOT_DIR"] + env.extend(binary_extension_build) # used by binary extensions during installation env.extend(["REQUESTS_CA_BUNDLE"]) return env diff --git a/tests/session/cmd/test_show_config.py b/tests/session/cmd/test_show_config.py index f0acb3d794..ab71cbc557 100644 --- a/tests/session/cmd/test_show_config.py +++ b/tests/session/cmd/test_show_config.py @@ -115,10 +115,11 @@ def test_pass_env_config_default(tox_project: ToxProjectCreator, stdout_is_atty: pass_env = outcome.env_conf("py")["pass_env"] is_win = sys.platform == "win32" expected = ( - (["COMSPEC"] if is_win else []) + ["CC", "CCSHARED"] + + (["COMSPEC"] if is_win else []) + ["CURL_CA_BUNDLE", "LANG", "LANGUAGE", "LD_LIBRARY_PATH"] + (["MSYSTEM", "NUMBER_OF_PROCESSORS", "PATHEXT"] if is_win else []) - + ["PIP_*", "PKG_CONFIG_PATH"] + + ["PIP_*", "PKG_CONFIG", "PKG_CONFIG_PATH", "PKG_CONFIG_SYSROOT_DIR"] + (["PROCESSOR_ARCHITECTURE"] if is_win else []) + (["PROGRAMDATA"] if is_win else []) + (["PROGRAMFILES"] if is_win else [])