I just started using nixpkg
on a Manjaro install (nixnoob here), and wanted to install instantWM
and dependecies (i.e. the instantnix
meta package) as a nice use case, because it’s in constant flux and I’m also contributing to it, and nix
appears an ideal solution when the “daily driver” is at the same time the “test platform”.
So, what happend:
$ nix-env -i nur.repos.instantos.instantnix
...
trying https://raw.githubusercontent.com/instantOS/instantos.github.io/master/youtube/hotkeys.md
...
hash mismatch in fixed-output derivation '/nix/store/7sd8rp0p6gp3j4yw4qhd97g2q6sfynjp-hotkeys.md':
wanted: sha256:1s4gzhmxvzrqbpvkr0j1cmr71is2iy13mklvh3yxq6gnk52ph822
got: sha256:1d9fzngdac99rc36g5flif3xzgrbl0k7b69dy9dzp8qf886z880b
For my normal nixpkgs
clone (I use it for contributing PRs), I’d just go to the expression, change the sha
and submit a PR.
But from my (naive) analysis, in this case, I’d have to
- fork
https://github.com/instantOS/instantNIX
, - make the fix,
- put in a PR,
- wait until it’s merged
- install
So the questions become:
- can I “directly” override the
sha
somewhere on my local system, to at least get further in building everything so I could later solve any issues in one go? (I noticedrepos.json.lock
, is there something similar I can use locally, and how to informnix-env
about it?) - what is the “best practice”, i.e. most efficient way to transparently handle the
NUR
+ any fixes I’d want to make?
The main purpose of (2) is being to be able to pull in a NUR
package with many deps, and override a few specific packages of the deps with local clones or forks on github transparently, e.g. with a file in my ~/.config/nixpkgs/
dir specifying a list of such packages.