| 4 Dec 2025 |
Capypara | Hi! A user for a flake of mine uses macOS. Unfortunately I don't own a Mac, so I have no idea of the nix-darwin ecosystem. They get this error when running an activation script. nixpkgs is the latest nixos-25.11 (but a week old one had the same result):
last 9 log lines:
> Running phase: patchPhase
> Running phase: updateAutotoolsGnuConfigScriptsPhase
> Running phase: configurePhase
> no configure script, doing nothing
> Running phase: buildPhase
> Traceback (most recent call last):
> File "/nix/store/5g45axkqi74cigpqpz3s9yayn80k6dv7-build-config.py", line 4, in <module>
> import yaml
> ModuleNotFoundError: No module named 'yaml'
For full logs, run:
nix log /nix/store/rs6nnmijyfhy9p4q1d1iyf2w4a2j9c44-riptide-build-config.drv
| 17:15:28 |
Capypara | nativeBuildInputs & buildPhase:
nativeBuildInputs = [
(pkgs.python314.withPackages (python-pkgs: [
python-pkgs.pyyaml
python-pkgs.mergedeep
]))
];
buildPhase = ''
runHook preBuild
python3 \
$src \
${lib.escapeShellArg (builtins.toJSON cfg)} \
${hostsFile} \
./config.yml
runHook postBuild
'';
| 17:15:45 |
Capypara | Anybody got an idea what the problem here could be? | 17:15:55 |
leona | https://github.com/NixOS/nixpkgs/issues/461884 fix will come in the next 1.5 weeks probably | 17:16:56 |
Capypara | ah okay! I thought those landed already, thanks! | 17:18:16 |
leona | As nobody built something else, they need a full stdenv rebuild on darwin | 17:18:52 |
Capypara | ah! I see | 17:19:08 |
Randy Eckenrode | Darwin tries not to pull too much, but it needs Python during its bootstrap, which makes Python-related fixes into full rebuilds. | 19:23:11 |
kfiz | Yes. | 22:25:52 |
kfiz | I'll try this. Thanks. | 22:26:53 |
toonn | .oO(Does Pypy change less often and is it capable enough?) | 23:07:28 |
toonn | (Just an intrusive thought : )) | 23:07:47 |
Randy Eckenrode | It’s a few versions behind CPython. The bootstrap story doesn’t look too bad. We would have to replace the top-level Python during the bootstrap. | 23:11:51 |
Randy Eckenrode | There’s enough stuff that depends on CPython that updates have to go through staging anyway. It doesn’t seem worth the effort. | 23:12:29 |
Randy Eckenrode | So PyPy, Rust, Go, Haskell, and what else all bootstrap from an upstream binary? | 23:14:01 |
Randy Eckenrode | Bootstrapping Swift from source seems like doing it on hard mode. | 23:14:20 |
toonn | Doesn't everything? Guix has GCC all the way from Mes but I don't think Nixpkgs does anything similar? | 23:15:45 |
toonn | I think with Swift the idea was more that since it's so recent it wasn't as difficult? | 23:16:23 |
Randy Eckenrode | nixpkgs doesn’t have it yet, but there is work being done on a minimal bootstrap. | 23:16:35 |
Randy Eckenrode | Swift assumes you have a Swift compiler handy. They restored building a C++-only bootstrap compiler, but it’s still buggy, and it doesn’t appear to be an intended bootstrap path on Darwin. | 23:17:43 |
Randy Eckenrode | * | 23:17:54 |
toonn | Self-hosting is fairly recent for Swift though, no? | 23:18:59 |
Randy Eckenrode | I did eventually get the point of having a functional enough compiler to build a full Swift. I just have to remember from last time how I solved that @_noLock error. | 23:19:04 |
Randy Eckenrode | The Swift Compiler Driver is at least five years old, but it’s not required (yet). Macros were the first time a Swift compiler was required for the bootstrap. They’re only a couple of years old. | 23:27:21 |
Randy Eckenrode | But in a couple of years Swift went from only needing a C++ compiler to also needing a Swift compiler. | 23:27:51 |
Randy Eckenrode | Writing Swift in Swift makes sense, but it makes a fully source-based bootstrap difficult (especially with how annoying it is to build). | 23:29:14 |
Randy Eckenrode | I could do Swift 5.10.1 via a private scope the compiler uses to build, but I’d also have to pin the SDK version to make it happen. | 23:30:45 |
Randy Eckenrode | * | 23:31:00 |
| 5 Dec 2025 |
Randy Eckenrode | I think I disabled the bootstrapping mode, which isn’t supported anymore. | 04:05:49 |
Randy Eckenrode | If I forcibly replace the bootstrapping0 compiler with the one from the bootstrap compiler, it works. That’s not very reassuring. | 04:39:09 |