!SgYlXivkogarTVcnZO:nixos.org

Nix Flakes

887 Members
179 Servers

Load older messages


SenderMessageTime
7 Dec 2023
@npc_projection:matrix.orgnpc_projectionuhh my nixpkgs needs to inherit system arch...10:09:37
@avaq:matrix.orgAldwin
In reply to @petrichor:envs.net
flakes are attribute sets with _type = "flake", but when coerced to a string (builtins.toString) or a path (builtins.toPath) they resolve to the flake's store path
Ah, okay! Clear!
10:10:40
@avaq:matrix.orgAldwin
In reply to @petrichor:envs.net
i think your overlay could look like final: prev: { unstable = import inputs.unstable { inherit (prev) system config; } but you might get away with omitting system
That's working! My system builds! :D
10:14:50
@avaq:matrix.orgAldwin Jez (he/him) ♾️: Deployed and booted the flake system. Thanks for the help :) 11:14:10
@avaq:matrix.orgAldwin * Jez (he/him) ♾️: Deployed and booted the flake systems. Thanks for the help :) 11:14:27
8 Dec 2023
@swrogers:matrix.orgShane joined the room.15:25:50
@tim:stratum0.orgdadada (they/them) removed their profile picture.19:18:59
9 Dec 2023
@softinio:matrix.orgsoftinio changed their profile picture.05:18:46
10 Dec 2023
@janik0:matrix.org@janik0:matrix.org
In reply to @janik0:matrix.org
of course, how else would I get people to do free qa :D
As promised, even so it took some time but here it is: https://discourse.nixos.org/t/announcing-nixos-dns/36702
21:47:19
11 Dec 2023
@ryoschin:matrix.org@ryoschin:matrix.org joined the room.12:49:14
@ryoschin:matrix.org@ryoschin:matrix.orgWhen using flakes to manage my system, and having `nixos-unstable` and `home-manager` as inputs, I have to call `sudo nixos-rebuild switch --flake some/path`. Now, that command sometimes downloads around 300 MB of data before actually doing the build (around 150 MB for unstable I suppose, and 148 MB for home-manager). Is it possible to avoid having to wait for that every time? I suppose it might do the downloading when I run `sudo nix-collect-garbage -d` and reboot. (Copied from NixOs, this room might be more suitable for this question)12:50:37
@janik0:matrix.org@janik0:matrix.org
In reply to @ryoschin:matrix.org
When using flakes to manage my system, and having `nixos-unstable` and `home-manager` as inputs, I have to call `sudo nixos-rebuild switch --flake some/path`. Now, that command sometimes downloads around 300 MB of data before actually doing the build (around 150 MB for unstable I suppose, and 148 MB for home-manager). Is it possible to avoid having to wait for that every time? I suppose it might do the downloading when I run `sudo nix-collect-garbage -d` and reboot. (Copied from NixOs, this room might be more suitable for this question)

you can try with --offline then it will try to run any nix * command with the local data from nix cache also stops nix shell and nix run from trying to refresh the remote nix version. Alternatively you can do:

  nix.registry = {
    nixpkgs.flake = inputs.nixpkgs;
  };

that pins any nix * command to the same flake.lock version (similar to what channels or npins or nivs would do for nix-* commands)

13:04:24
@ryoschin:matrix.org@ryoschin:matrix.org
In reply to @janik0:matrix.org

you can try with --offline then it will try to run any nix * command with the local data from nix cache also stops nix shell and nix run from trying to refresh the remote nix version. Alternatively you can do:

  nix.registry = {
    nixpkgs.flake = inputs.nixpkgs;
  };

that pins any nix * command to the same flake.lock version (similar to what channels or npins or nivs would do for nix-* commands)

But my problem is in that sudo nix-collect-garbage -d deletes the sources, and sudo nixos-rebuild switch --flake some/path has to download them again (I suppose that is because they count as cache, so it clears them). I need the gc to not clear them, and the rebuild command to download them only if there is an actual update
15:14:32
@ryoschin:matrix.org@ryoschin:matrix.org
In reply to @janik0:matrix.org

you can try with --offline then it will try to run any nix * command with the local data from nix cache also stops nix shell and nix run from trying to refresh the remote nix version. Alternatively you can do:

  nix.registry = {
    nixpkgs.flake = inputs.nixpkgs;
  };

that pins any nix * command to the same flake.lock version (similar to what channels or npins or nivs would do for nix-* commands)

* But my problem is in that sudo nix-collect-garbage -d deletes the sources, and sudo nixos-rebuild switch --flake some/path has to download them again (I suppose that is because they count as cache, so it clears them). I need the gc to not clear them, and the rebuild command to re-download them only if there is an actual update
15:14:57
@2xsaiko:tchncs.de@2xsaiko:tchncs.de
In reply to @ryoschin:matrix.org
But my problem is in that sudo nix-collect-garbage -d deletes the sources, and sudo nixos-rebuild switch --flake some/path has to download them again (I suppose that is because they count as cache, so it clears them). I need the gc to not clear them, and the rebuild command to re-download them only if there is an actual update
if you add those flakes to the local registry then they will not be collected
alternatively I guess you can add them to system.extraDependencies
15:17:08
@janik0:matrix.org@janik0:matrix.org
In reply to @ryoschin:matrix.org
But my problem is in that sudo nix-collect-garbage -d deletes the sources, and sudo nixos-rebuild switch --flake some/path has to download them again (I suppose that is because they count as cache, so it clears them). I need the gc to not clear them, and the rebuild command to re-download them only if there is an actual update
There was some setting like keepDerivations or something to prevent that but I'm not at my laptop currently.
15:17:28
@ryoschin:matrix.org@ryoschin:matrix.org
In reply to @2xsaiko:tchncs.de
if you add those flakes to the local registry then they will not be collected
alternatively I guess you can add them to system.extraDependencies
I see. Mind sharing the process?
15:55:51
@ryoschin:matrix.org@ryoschin:matrix.org
In reply to @janik0:matrix.org
There was some setting like keepDerivations or something to prevent that but I'm not at my laptop currently.
Yup, there is such an option, but I did not fully understand what it does. Does it keep all the packages I install even if they are not needed anymore, or just keep the two things I needed not to be garbage collected?
15:57:03
@ryoschin:matrix.org@ryoschin:matrix.orgSo, as far as I can tell now, all I need to do is make the flake a GC root, right? So, how do I do that...16:07:28
@mr-qubo:matrix.orgmr-qubo
In reply to @ryoschin:matrix.org
So, as far as I can tell now, all I need to do is make the flake a GC root, right? So, how do I do that...
I don't know but direnv does this, so you can check how they do it.
17:00:32
@ryoschin:matrix.org@ryoschin:matrix.orgAlright, I think I managed to apply direnv to this17:20:26
@2xsaiko:tchncs.de@2xsaiko:tchncs.de
In reply to @ryoschin:matrix.org
I see. Mind sharing the process?
nix.registry.nixpkgs.flake = inputs.nixpkgs (like Janik said) or system.extraDependencies = [inputs.nixpkgs]
18:04:20
12 Dec 2023
@peacememories:matrix.orgpeacememories (Old)i've been looking into this again after some time away, and still can't really find anything: is there a way to exclude one directory from my flake? specifically we have a giant folder of reference PDFs checked into our source tree, and copying them every time a flake is built makes our development shell unusable. this is why we're currently running non-flake nix, but I would love to be able to switch08:48:26
@peacememories:matrix.orgpeacememories (Old)side note: these files are not needed from our nix build, they are just for test runs08:49:27
@janik0:matrix.org@janik0:matrix.org
In reply to @peacememories:matrix.org
i've been looking into this again after some time away, and still can't really find anything:
is there a way to exclude one directory from my flake? specifically we have a giant folder of reference PDFs checked into our source tree, and copying them every time a flake is built makes our development shell unusable.
this is why we're currently running non-flake nix, but I would love to be able to switch
maybe this helps? https://github.com/hercules-ci/gitignore.nix
09:08:56
@peacememories:matrix.orgpeacememories (Old) i don't believe so. for one, the files are not gitignored because they are meant to be versioned. also, I think this would only work when including a separate directory from my flake? right now the flake is at the root of the repository, so the whole repo is copied into the store before I can do anything with it.
I think some people are putting their flake into a subdirectory to work around this? Maybe that's workable for me as well. Still hoping the lazy trees MR gets merged at some point^^
09:25:35
@peacememories:matrix.orgpeacememories (Old)okay, a subfolder alone does not do anything since nix still recognizes the repository root as "the flake" and copies the entire tree. at least that's what it looks like09:52:53
@wucke13:matrix.orgwucke13What is a nice way to fill hydraJobs with the packages and checks of a flake?12:41:59
@tim:stratum0.orgdadada (they/them)

Everyone seems to do this differently. I have this for building NixOS configs.

{ self, nixpkgs, ... }:
(nixpkgs.lib.mapAttrs'
  (name: config: nixpkgs.lib.nameValuePair name config.config.system.build.toplevel)
  self.nixosConfigurations
)

But not sure if this actually works, or if I configured the jobs manually in hydra...

13:36:15
@antifuchs:asf.computer@antifuchs:asf.computer You may have a .jobsets job that generates a json config listing all the hydra jobs exposed in your flake?  13:49:00

Show newer messages


Back to Room ListRoom Version: 6