From 263ee6781bb15e5fc41f99ee234074a876f8bb68 Mon Sep 17 00:00:00 2001 From: Luke Curley <432854+kixelated@users.noreply.github.com> Date: Sat, 7 Nov 2026 11:26:48 -0800 Subject: [PATCH 1/2] chore(quest): claim quest/m0/swift-guard.md Quest-Claim: d62505b09a42c245 From 35ec82a748b283fa09e946ab63705e57bc48ec49 Mon Sep 17 00:00:00 2001 From: Luke Curley <432854+kixelated@users.noreply.github.com> Date: Sat, 7 Nov 2026 11:31:27 -0800 Subject: [PATCH 2/2] fix(nix): leave out Swift where its compiler is broken nixpkgs' `swift` wrapper copies only `platforms` and `badPlatforms` from `swiftc`, so `swift.meta.broken` is always false and the default shell pulled in swiftc 6.3.3 on aarch64-linux, which nixpkgs refuses to evaluate. Co-Authored-By: Claude Opus 5.5 --- flake.nix | 3 ++- quest/m0/README.md | 1 - quest/m0/swift-guard.md | 23 ----------------------- 3 files changed, 2 insertions(+), 25 deletions(-) delete mode 100644 quest/m0/swift-guard.md diff --git a/flake.nix b/flake.nix index 305c25751..3faa5d820 100644 --- a/flake.nix +++ b/flake.nix @@ -308,7 +308,8 @@ dart ]; # ... and its generated Swift, where nixpkgs builds Swift: not on aarch64-linux. - nativeBuildInputs = pkgs.lib.optional (!pkgs.swift.meta.broken) pkgs.swift; + # The `swift` wrapper doesn't copy its compiler's `broken`, so ask the compiler. + nativeBuildInputs = pkgs.lib.optional (!pkgs.swift.swiftc.meta.broken) pkgs.swift; RUST2_TS_TOOLCHAIN = tsToolchain; RUST2_TS_SYSROOT = rust2-ts-std; KOTLINX_COROUTINES = "${kotlinx-coroutines}"; diff --git a/quest/m0/README.md b/quest/m0/README.md index 08736f0d5..fa2096325 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -6,5 +6,4 @@ Urgent fixes to anything a consumer already depends on. ## Required -- [Leave out a broken Swift on aarch64](/quest/m0/swift-guard.md) - the default dev shell evaluates on aarch64-linux, so the nightly's aarch64 jobs pass - [Checks at moq's cost](/quest/m0/checks/README.md) - `just ci` selects by the diff, builds warm, and runs the differential optimized, with a nightly full `just gate` diff --git a/quest/m0/swift-guard.md b/quest/m0/swift-guard.md deleted file mode 100644 index 63c48b2a1..000000000 --- a/quest/m0/swift-guard.md +++ /dev/null @@ -1,23 +0,0 @@ -# [XS] Leave out a broken Swift on aarch64 - -## Goal - -The default dev shell leaves Swift out wherever nixpkgs marks `swiftc` broken, so it -evaluates on aarch64-linux and the nightly's aarch64 jobs pass again. Today they have -failed since 2026-10-29 on `Refusing to evaluate package 'swiftc-6.3.3'`. - -## Plan - -The guard `!pkgs.swift.meta.broken` (`flake.nix`, the default shell's -`nativeBuildInputs`) is always true: nixpkgs' `swift` wrapper copies only `platforms` and -`badPlatforms` from `swiftc`, not `broken`, -so the shell still pulls in the broken compiler. Guard on `pkgs.swiftc.meta.broken` -instead. Found while reviewing [#617](https://github.com/moq-dev/rust2/pull/617), whose -nixpkgs bump does not change it. The guard came in with the comment's "not on -aarch64-linux" note; name its PR under `## Caused by`. - -[Swift 6.4 in nixpkgs-unstable](/quest/m2/uniffi-swift-arm.md) still restores Swift on -aarch64 once nixpkgs ships it. - -Decided with the maintainer on 2026-11-07: ✅ m0 (rejected: fold into the m2 waiting -quest, drop), since a red nightly hides new failures.