| 12 Jan 2026 |
emily | Randy Eckenrode: do you think there's a way we could make stage1Packages error out if packages aren't used so we know we can clean up overrides etc.? | 18:07:12 |
samasaur | is there an easy way to check whether packages are unused, even manually? the only thing that's coming to mind is removing them and running builds | 18:09:13 |
samasaur | I mean in smaller situations spot checking/LSPs will work but my impression is that this case is too complex for those to work well | 18:09:39 |
emily | nix-store -qR again | 18:10:58 |
emily | shion:~/Developer/nixpkgs (empty) (no description set)
❭ nix-store -qR /nix/store/26mkrardz97d9abbqwcrs2s0q0nbln3w-stdenv-darwin.drv | rg scons
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭
| 18:11:10 |
emily | so the scons overrides are just dead code | 18:11:26 |
emily | in fact a ton of stage1Packages seem to be
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭ nix-store -qR /nix/store/26mkrardz97d9abbqwcrs2s0q0nbln3w-stdenv-darwin.drv | rg cyrus
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭ nix-store -qR /nix/store/26mkrardz97d9abbqwcrs2s0q0nbln3w-stdenv-darwin.drv | rg brotli
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭ nix-store -qR /nix/store/26mkrardz97d9abbqwcrs2s0q0nbln3w-stdenv-darwin.drv | rg subversion
shion:~/Developer/nixpkgs 0|1 (empty) (no description set)
❭
now I'm wondering if I've somehow misunderstood how stage1Packages works
| 18:12:23 |
Randy Eckenrode | passthru.tests that greps nix-store -qR <stdenv.drv> for those paths and fails if they aren’t there? | 18:13:36 |
emily | I guess there's not much we can do at eval time | 18:14:01 |
samasaur | In reply to @emilazy:matrix.org
nix-store -qR again ah i was thinking this would show them even if they were unused | 18:14:36 |
Randy Eckenrode | I would like to try structuring the bootstrap as a cross (with prevStage really being buildPackages). It probably wouldn’t reduce the number of builds, but it might allow is to drop most of the overlays. | 18:15:02 |
Randy Eckenrode | But that is like 26.11 or 27.05 stuff. | 18:15:28 |
Randy Eckenrode | Aside from this cleanup, I want to switch Darwin to LLD by default. That will require some work because LLD is not wrapped properly for that. | 18:16:01 |
Randy Eckenrode | No cctools or ld64 should be in the bootstrap at that point. | 18:16:51 |
emily | hmm, do we actually use python3-bootstrap as our final pkgs.python3? | 18:17:36 |
emily | does that mean Darwin gets Python without any LTO? | 18:17:41 |
Randy Eckenrode | I also want to drop the source releases from the SDK and vendor the needed sources along with the others. | 18:18:00 |
emily | or is it just that we use one python3-bootstrap build throughout the entire bootstrap but then it gets built once more for the real python3? | 18:18:13 |
Randy Eckenrode | I hope not. That would be a mistake. | 18:18:16 |
emily | right | 18:18:20 |
emily | was just thinking if it makes sense to think about trimming some of the other feature flags again if it can save us significant builds | 18:18:35 |
emily | since we pretty much just need it for Meson and the LLVM/Ninja builds | 18:19:24 |
Randy Eckenrode | Not really worth the effort. LLVM and Clang dominate the build times on Darwin. Maybe only OpenSSL is as bad. | 18:19:42 |
emily | fair enough | 18:19:54 |
emily | I mean it's probably not that bad to pull in Lua or Tcl either ultimately | 18:20:08 |
Randy Eckenrode | I would be open to switching to Swift Crypto for ld64, but if we can switch to LLD, it doesn’t matter. | 18:20:19 |
emily | it does affect what things rebuild the world for staging though | 18:20:22 |
Randy Eckenrode | That would be the only thing. Is sqlite really not a dependency in the bootstrap? | 18:20:45 |
Randy Eckenrode | It totally will if Swift ever gets added. | 18:20:58 |
emily | it's only used via libiconv → ATF → Kyua → SQLite and Python → SQLite | 18:21:11 |