diff --git a/conda_build/build.py b/conda_build/build.py index 4be112f57b..1db457f493 100644 --- a/conda_build/build.py +++ b/conda_build/build.py @@ -1738,7 +1738,10 @@ def bundle_conda( if ( # WSL bash is always the same path, it is an alias to the default # distribution as configured by the user - on_win and Path("C:\\Windows\\System32\\bash.exe").samefile(args[0]) + on_win + # check if WSL is installed before calling Path.samefile/os.stat + and (wsl_bash := Path("C:\\Windows\\System32\\bash.exe")).exists() + and wsl_bash.samefile(args[0]) ): raise CondaBuildUserError( "WSL bash.exe is not supported. Please use MSYS2 packages. Add " diff --git a/news/5434-check-for-WSL b/news/5434-check-for-WSL new file mode 100644 index 0000000000..e063aa3bbe --- /dev/null +++ b/news/5434-check-for-WSL @@ -0,0 +1,19 @@ +### Enhancements + +* + +### Bug fixes + +* Check for WSL existence before calling `os.stat`. (#5433 via #5434) + +### Deprecations + +* + +### Docs + +* + +### Other + +* diff --git a/tests/test_api_build.py b/tests/test_api_build.py index 554bc452ae..efba89d75d 100644 --- a/tests/test_api_build.py +++ b/tests/test_api_build.py @@ -1963,8 +1963,13 @@ def test_activated_prefixes_in_actual_path(testing_metadata): @pytest.mark.parametrize("add_pip_as_python_dependency", [False, True]) def test_add_pip_as_python_dependency_from_condarc_file( - testing_metadata, testing_workdir, add_pip_as_python_dependency, monkeypatch -): + testing_metadata: MetaData, + testing_workdir: str | os.PathLike, + add_pip_as_python_dependency: bool, + monkeypatch: MonkeyPatch, + mocker: MockerFixture, + tmp_path: Path, +) -> None: """ Test whether settings from .condarc files are needed. ref: https://github.com/conda/conda-libmamba-solver/issues/393 @@ -1976,6 +1981,10 @@ def test_add_pip_as_python_dependency_from_condarc_file( # SubdirData's cache doesn't distinguish on add_pip_as_python_dependency. SubdirData._cache_.clear() + # clear cache + mocker.patch("conda.base.context.Context.pkgs_dirs", pkgs_dirs := (str(tmp_path),)) + assert context.pkgs_dirs == pkgs_dirs + testing_metadata.meta["build"]["script"] = ['python -c "import pip"'] testing_metadata.meta["requirements"]["host"] = ["python"] del testing_metadata.meta["test"]