Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • > nix/store/24v9wpp393ib1gllip7ic13aycbi704g-ruby-3.3.9.drv

    A different type of madness, but are ugly names so common, why not start with ruby-3.3.9 so any list of files is semantically sorted/readable?

  • As a mere mortal I find none of this surprising, mostly because I never understood any of it in the first place ... :)
  • If I understand this correctly, upcoming Ca-derivations will fix this by making these situations expected, properly-handled cases rather than a weird bug? https://nixos.wiki/wiki/Ca-derivations
  • > The road to Nix enlightenment is no joke and full of dragons.

    Nix was a great research project. Now is the time to rewrite it from the ground up.

  • +1 to Farid, great write-up! What you’re seeing is the long-standing “deriver” mismatch: fixed-output derivations can change their .drv without changing the output path. Eelco is calling it out as well in the comment below. I believe the idea behind the path forward is there but happy to hear more!

    Also. Check out Farid's other posts.

  • The deriver field in Nix has always been a misfeature. It was intended to provide traceability back to the Nix expression used to create the derivation, but it doesn't actually do that (since that wasn't really possible in the pre-flakes world, without hermetic evaluation). So instead it just causes a lot of confusion when the deriver recorded in the binary cache doesn't match the local evaluation result, due to fixed-output derivations changing.

    In the future, Nix will hopefully gain proper provenance tracking that will tell you exactly where a store path came from: https://github.com/NixOS/nix/pull/11749

Explore Birbla archives