nixos-rebuild-ng: set user defined NIX_SSHOPTS after SSH_DEFAULT_OPTS in nix-copy-closure

Fix #463271.
This commit is contained in:
Thiago Kenji Okada
2025-11-19 20:31:27 +00:00
parent a7e3137d88
commit 7c881d8266
2 changed files with 5 additions and 5 deletions
@@ -190,7 +190,7 @@ def copy_closure(
sshopts = os.getenv("NIX_SSHOPTS", "")
extra_env = {
"NIX_SSHOPTS": " ".join(filter(lambda x: x, [*SSH_DEFAULT_OPTS, sshopts]))
"NIX_SSHOPTS": " ".join(filter(lambda x: x, [sshopts, *SSH_DEFAULT_OPTS]))
}
def nix_copy_closure(host: Remote, to: bool) -> None:
@@ -134,7 +134,7 @@ def test_build_remote(
Path("/path/to/file"),
],
extra_env={
"NIX_SSHOPTS": " ".join([*p.SSH_DEFAULT_OPTS, "--ssh opts"])
"NIX_SSHOPTS": " ".join(["--ssh opts", *p.SSH_DEFAULT_OPTS])
},
),
call(
@@ -208,7 +208,7 @@ def test_build_remote_flake(
Path("/path/to/file"),
],
extra_env={
"NIX_SSHOPTS": " ".join([*p.SSH_DEFAULT_OPTS, "--ssh opts"])
"NIX_SSHOPTS": " ".join(["--ssh opts", *p.SSH_DEFAULT_OPTS])
},
),
call(
@@ -249,13 +249,13 @@ def test_copy_closure(monkeypatch: MonkeyPatch) -> None:
mock_run.assert_called_with(
["nix-copy-closure", "--copy-flag", "--from", "user@build.host", closure],
extra_env={
"NIX_SSHOPTS": " ".join([*p.SSH_DEFAULT_OPTS, "--ssh build-opt"])
"NIX_SSHOPTS": " ".join(["--ssh build-opt", *p.SSH_DEFAULT_OPTS])
},
)
monkeypatch.setenv("NIX_SSHOPTS", "--ssh build-target-opt")
extra_env = {
"NIX_SSHOPTS": " ".join([*p.SSH_DEFAULT_OPTS, "--ssh build-target-opt"])
"NIX_SSHOPTS": " ".join(["--ssh build-target-opt", *p.SSH_DEFAULT_OPTS])
}
with patch(get_qualified_name(n.run_wrapper, n), autospec=True) as mock_run:
n.copy_closure(closure, target_host, build_host, {"copy_flag": True})