!SgYlXivkogarTVcnZO:nixos.org

Nix Flakes

886 Members
177 Servers

Load older messages


SenderMessageTime
2 Oct 2021
@ncfavier:matrix.orgnf changed their profile picture.00:16:52
@Las:matrix.orgLasThe issue with that is that GC might remove the Nix in that small available timeframe.10:14:17
@Las:matrix.orgLas * The issue with that is that GC might remove the Nix in that small timeframe.10:14:24
@Las:matrix.orgLasThe best solution is likely installing the new Nix with a higher priority, then uninstalling the old one.10:15:04
@bew:matrix.orgbew
In reply to @Las:matrix.org
The issue with that is that GC might remove the Nix in that small timeframe.
You have automatic gc running? You could always open a nix shell with a nix version, this way you always have one (which cannot be gc'ed)
12:06:29
@Las:matrix.orgLasThat is another solution. Lots of people have automatic GC running.12:07:06
@balsoft:balsoft.rubalsoft

I've found a weird issue with Nix not adding a flake source as a runtime dependency. In particular:

  environment.etc."nixpkgs".source = pkgs.path;

When pkgs comes from a nixpkgs flake produces a "broken" etc: it has nixpkgs symlink pointing to -source nix store path containing the nixpkgs flake, but this path is not a runtime dependency of etc derivation, e.g. doesn't show up nix-store -qR or nix why-depends. toString-ing the pkgs.path beforehand doesn't fix the issue (as expected, since it gets toString-ed down the line anyways). Doing

  environment.etc."nixpkgs".source = pkgs.copyPathToStore pkgs.path;

Fixes the problem, but it's just weird.

15:04:25
@tomberek:matrix.orgtomberekDoes it help to do string interpolation with pkgs.path as you use it? “${pkgs.path}” ?17:11:25
@balsoft:balsoft.rubalsoft
In reply to @tomberek:matrix.org
Does it help to do string interpolation with pkgs.path as you use it? “${pkgs.path}” ?
Isn't "${pkgs.path}" exactly the same as toString pkgs.path ?
17:11:47
@balsoft:balsoft.rubalsoftI can try it I guess...17:11:53
@balsoft:balsoft.rubalsoftAha, ok, it seems it is different...17:13:15
@balsoft:balsoft.rubalsoftInteresting17:13:16
@balsoft:balsoft.rubalsoft Yeah it works fine with "${pkgs.path}" 17:13:25
@tomberek:matrix.orgtomberek This comes up sometimes. Interpolation kicks in a “string with context” which gives the dependency tracking the info. 17:13:32
@balsoft:balsoft.rubalsoft Hm, I thought toString gave a string with context too... 17:13:46
@balsoft:balsoft.rubalsoft

But yeah,

nix-repl> :t toString pkgs.path
a string

nix-repl> :t "${pkgs.path}"
a string with context
17:14:10
@balsoft:balsoft.rubalsoftIt makes a lot more sense now17:14:18
@balsoft:balsoft.rubalsoftBut I wonder why I never noticed this before flakes17:14:26
@tomberek:matrix.orgtomberek Well…. It’s a gotcha. And easy to mess up. Not sure what would help fix it in a user-friendly way. 17:15:08
@balsoft:balsoft.rubalsoft Oh, ok, even more interestingly .source = inputs.nixpkgs works fine (this is on my personal system) 17:15:31
@balsoft:balsoft.rubalsoftAha, I think now I understand why it's not in runtime dependencies -- it's not in dependencies at all, so Nix doesn't even try scanning for its hash.17:16:43
@balsoft:balsoft.rubalsoft
In reply to @balsoft:balsoft.ru
Oh, ok, even more interestingly .source = inputs.nixpkgs works fine (this is on my personal system)
That's because toString inputs.nixpkgs is a string with context
17:18:27
@balsoft:balsoft.rubalsoft
In reply to @tomberek:matrix.org
Well…. It’s a gotcha. And easy to mess up. Not sure what would help fix it in a user-friendly way.
What's the problem with making toString /some-path return a string with context?
17:18:54
@balsoft:balsoft.rubalsoftOh, ok, that's probably because it would then break some stuff since you can't pass strings with contexts around as easily, e.g. as derivation names, correct?17:19:32
@tomberek:matrix.orgtomberek/some-path is not always in the store17:23:12
@balsoft:balsoft.rubalsoft I guess I'm saying it should work the same as "${/some-path}" (which copies it to the store) 17:24:06
@tomberek:matrix.orgtomberekThis is from 2005: https://github.com/NixOS/nix/blob/master/src/libexpr/primops.cc#L3097-L310517:30:02
@balsoft:balsoft.rubalsoftAha, yes, I see why I'm wrong on that part17:30:39
@balsoft:balsoft.rubalsoftIt would break a lot of useful path operations...17:30:48
@balsoft:balsoft.rubalsoftI remember now17:30:51

Show newer messages


Back to Room ListRoom Version: 6