How to ensure all packages are available in cache.nixos.org on `nix flake update`?

I am now waiting already a couple of hours to successfully switch and upgrade my nixos.

I did the following:

nix flake update

nixos-rebuild switch --upgrade

I needed to restart the procedure a couple of time as my system froze due to oom and crashed during the build.

The main issue seems to be that webkitgtk-2.42.4 is not available in cache.nixos.org as the hydra jobs are still pending. Therefore nix needs build the package on my own machine.

Is there some way to ensure that nix flake update only updates to a revision which was fully built by hydra and therefore it was safe to assume that the upgrade in worst case takes only a few minutes in instead of hours and crashing my system?

Set your inputs to follow a channel, e.g.:

nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"

or

nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

Those will only update once packages are available in the cache.

3 Likes

Beside what wamserma wrote, please be aware that overriding packages or applying overlays may also cause a rebuild of another package in case the override/overlayed is a build input and you replace the original package.
To know what’s going on, you may want to diff the packages (webkitgtk from nixpkgs vs the one from your flake)

3 Likes

Perfect! I think this was the issue. For some reason I have used the master branch instead of nixos-unstable. :see_no_evil:

2 Likes