| 26 Jul 2025 |
aloisw | How many packages depend on nix-prefetch-git outside of fixed-output derivations?! | 16:50:37 |
aloisw | I do remember a couple of infinite recursions involving that, but I think it did not even use nixForLinking? | 16:51:06 |
piegames | npins etc. | 16:52:46 |
emily | I remember it was a lot but I don't remember why. | 16:53:24 |
emily | well, it doesn't link. it shells out. but it no longer pulls in Nix by default I think | 16:53:42 |
aloisw | Anyway regarding exposing the overlay from nixpkgs, it seems that trying to add the overlay to the same pkgs instance used to get it will cause infinite recursion. | 16:54:24 |
emily | "prefetch-yarn-deps" # force these onto upstream so we are not regularly rebuilding electron
has some clue
| 16:54:25 |
emily | with prev, not final? | 16:54:44 |
aloisw | I have tested something like let pkgs = import ./. { overlays = [ pkgs.dummyOverlay ]; }; in pkgs. | 16:55:19 |
piegames | nixpkgs = import <nixpkgs> { overlays = [ (self: super: { myOverlay = self: super: {}; }) (self: super: super.myOverlay self super) ]; } works though | 16:56:50 |
piegames | So import <nixpkgs> { overlays = [ (self: super: super.ourLixOverlay self super) ]; } should work | 16:57:50 |
piegames | which is basically like that one except the overlay gets access to its inputs, in a way | 16:58:29 |
emily | it doesn't take parameters | 16:58:50 |
piegames | * which is basically like that one except the overlay gets access to its inputs, in a way (not sure if that even adds anything useful in the first place though) | 16:58:52 |
emily | overlays = [ pkgs. can never work | 16:58:59 |
emily | overlays = [ (final: prev: prev.dummyOverlay) ]; should | 16:59:06 |
emily | I don't think you need the arguments in lixPackageSets | 16:59:39 |
emily | its "prev" is essentially the wider package set it's instantiated in | 17:00:04 |
aloisw | In reply to @emilazy:matrix.org
"prefetch-yarn-deps" # force these onto upstream so we are not regularly rebuilding electron
has some clue
Am I looking at the correct thing here https://github.com/NixOS/nixpkgs/blob/7379d27cddb838c205119f9eede242810cd299a7/pkgs/development/tools/electron/common.nix#L53-L56 ? That's a FOD. | 17:00:16 |
emily | it does mean that lixPackageSets will become a double-overlay in the resulting package set though, which is fun. | 17:00:18 |
emily | but you do want an explicit non-overlay thing so that those packages can be used from the CLI, anyway | 17:00:28 |
emily | I don't understand it either, but also like I said this stuff changed at some point I believe | 17:00:54 |
piegames | yeah, I figured | 17:01:21 |
aloisw | In reply to @emilazy:matrix.org
overlays = [ (final: prev: prev.dummyOverlay) ]; should final: prev: prev.dummyOverlay final prev, but yes that works, cool trick. | 17:02:21 |
emily | that's not the trick I mean :) | 17:02:33 |
aloisw | Ah you want to use an attrset as an overlay? | 17:03:33 |
emily | you can do dummyPackages = { nix = pkgs.hello; } | 17:03:34 |
emily | and then (final: prev: prev.dummyPackages) should work | 17:03:41 |
emily | that's how lixPackageSets could work (but it does admittedly infrec right now) | 17:04:05 |
emily | (I guess because it's overlaying newScope, lol) | 17:04:13 |