support/testing/infra/builder.py: fix missing $HOME during build

When running a test that uses host-python-setuptools using the Buildroot
Docker image, for example running the following command,

> ./utils/docker-run ./support/testing/run-tests -o output -s -k tests.package.test_python_pytest.TestPythonPy3Pytest

The build fails with the following error,

>   File "/home/blmaier/buildroot/output/TestPythonPy3Pytest/build/host-python-setuptools-69.2.0/setuptools/_distutils/dist.py", line 354, in _gen_paths
>     yield pathlib.Path('~').expanduser() / filename
>           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File "/home/blmaier/buildroot/output/TestPythonPy3Pytest/host/lib/python3.11/pathlib.py", line 1385, in expanduser
>     raise RuntimeError("Could not determine home directory.")
> RuntimeError: Could not determine home directory.
>
> ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel

Python setuptools is looking for $HOME but failing to find it.

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
(cherry picked from commit 4dafb8b5c2)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Brandon Maier 2024-05-13 21:30:35 +00:00 committed by Peter Korsgaard
parent 15025dbb18
commit 9a780d2aca

View File

@ -52,7 +52,10 @@ class Builder(object):
"> end defconfig\n") "> end defconfig\n")
self.logfile.flush() self.logfile.flush()
env = {"PATH": os.environ["PATH"]} env = {
"PATH": os.environ["PATH"],
"HOME": os.environ["HOME"]
}
env.update(make_extra_env) env.update(make_extra_env)
cmd = ["make", cmd = ["make",
@ -79,7 +82,11 @@ class Builder(object):
in the environment that calls make. in the environment that calls make.
e.g. make_extra_env={"BR2_DL_DIR": "/path"} e.g. make_extra_env={"BR2_DL_DIR": "/path"}
""" """
env = {"PATH": os.environ["PATH"]} env = {
"PATH": os.environ["PATH"],
"HOME": os.environ["HOME"]
}
if "http_proxy" in os.environ: if "http_proxy" in os.environ:
self.logfile.write("Using system proxy: " + self.logfile.write("Using system proxy: " +
os.environ["http_proxy"] + "\n") os.environ["http_proxy"] + "\n")