nmattia / niv

Easy dependency management for Nix projects
https://github.com/nmattia/niv
MIT License
1.58k stars 77 forks source link

niv doesn't allow overriding the names of the download derivation #356

Open lf- opened 2 years ago

lf- commented 2 years ago

Niv seems to hardcode names to things of format like *-nixpkgs-src according to a cursory reading of the file nix/sources.nix. This is problematic while interoperating with flakes, since if you put a path of any name except *-source as a "path" entry in the nix flake registry, it will be pointlessly copied on nearly every nix command run.

That limitation is filed upstream here: https://github.com/NixOS/nix/issues/7075

It would be good to be able to override these names to workaround this Nix issue.

nmattia commented 1 year ago

hi, I'm still not 100% familiar with flakes. I'm quite curious though, what does your workflow look like with niv + flakes?

lf- commented 1 year ago

I use the option nix.registry.nixpkgs in my non flake NixOS configuration to set the nixpkgs flake in the system registry to the same nixpkgs the system was built with.

For instance, nix run nixpkgs#hello will get the same hello as nix-shell -p.

However Nix doesn't like it when you name store paths anything but "source" then put them in a flake registry and will recopy them every time if so. I wound up just patching niv's sources.nix about it.