It appears that aarch64 must be built from scratch?
AArch64 is in the binary cache too. If stuff gets rebuilt, then there are several possibilities: Hydra hasn’t build the derivations yet (which can happens most frequently with master, then unstable-small, etc.), hydra couldn’t build the derivation(s), or you changed the derivations such that they need to be built.
there was an issue with a large number of aarch64 jobs getting aborted https://hydra.nixos.org/eval/1624335#tabs-aborted
The issue seems to be remedied, but now there’s a huge backlog of builds for hydra to chew through https://hydra.nixos.org/eval/1624644#tabs-unfinished
In the cache but channels not, it looks like. Or is that a build artifact?
The channels are platform-independent. They basically provide tarballs of all of nixpkgs (from the branches corresponding to the channels).
I beleive you, but when you look at channels.nixos.org it is populated by tarballs with platform specified in the name. I see x86_64-linux, x86_64_darwin and i686_-linux but no aarch64-linux.
The cache works as, “hey, binary cache, do you have this exact build output?”. And unless the hydra build is broken or queued, the cache will go, “Ah yes, I have it right here”.
The cache doesn’t have a concept of channels. We leverage nix’s reproducibility aspects to make those two things separate.
Think of it more like a key/value store, where the key is the store-path (which includes a hash), and the value is the build output.
Definitely not.
I’m trying to prepare my nix store in a container for both arm64 and x86_64 in an automated process.
My module is building the world from scratch right now. I’m pretty sure there is a problem with aarch64 in cache.nixos.org.