25 Jan 2022 |
Linux Hackerman is moving: @linus:schreibt.jetzt | Is there a way to pass the flake inputs on to all machine configs? I'd like to do things like imports = [ "${inputs.nixos-mailserver}/default.nix" ]; in my machine configs. | 15:39:18 |
Linux Hackerman is moving: @linus:schreibt.jetzt | Additionally I'd like to be able to access the flakeInfo of the nixpkgs used to build the individual machine. I currently have the problem that the system version metadata is basically useless (nixos-version says 21.11pre-git and nixos-version --hash doesn't know anything). | 15:41:47 |
Buckley | could be done with an overlay | 15:42:26 |
Buckley | In reply to @buckley310:matrix.org
the stub:
colmena =
{ meta.nixpkgs = nixpkgs.legacyPackages."x86_64-linux"; } //
builtins.mapAttrs
(name: value: {
nixpkgs.system = value.config.nixpkgs.system;
imports = value.extraArgs.modules ++ [
({ config, ... }: { inherit (config.sconfig) deployment; })
];
})
(nixosConfigurations);
FWIW, my colmena machines have the correct nixpkgs info instead of the pre-git thing, because i build them in nixosConfigurations and then shim them into colmena | 15:45:59 |
Buckley | $ nixos-version
21.11.20211229.8588b14 (Porcupine)
| 15:46:43 |
Linux Hackerman is moving: @linus:schreibt.jetzt | In reply to @buckley310:matrix.org
the stub:
colmena =
{ meta.nixpkgs = nixpkgs.legacyPackages."x86_64-linux"; } //
builtins.mapAttrs
(name: value: {
nixpkgs.system = value.config.nixpkgs.system;
imports = value.extraArgs.modules ++ [
({ config, ... }: { inherit (config.sconfig) deployment; })
];
})
(nixosConfigurations);
hm, why do you set nixpkgs.system again? Shouldn't imports already take care of that? | 17:41:43 |
Buckley | i originally thought so, but if i remove that line my pi doesnt deploy right | 17:42:22 |
Linux Hackerman is moving: @linus:schreibt.jetzt | I also don't see how that will play along with use of meta.nodeNixpkgs | 17:42:25 |
Linux Hackerman is moving: @linus:schreibt.jetzt | that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string | 17:44:49 |
[0x4A6F] | Linux Hackerman: something along this in flake outputs?
colmena.defaults = {
system.nixos.version = "nixos-${nixpkgs.shortRev}";
};
| 17:45:10 |
Linux Hackerman is moving: @linus:schreibt.jetzt | In reply to @linus.heckemann:matrix.mayflower.de that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string [0x4A6F]: that also has ^ this problem | 17:45:36 |
Buckley | In reply to @linus.heckemann:matrix.mayflower.de that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string not sure. i dont use meta.nodePackages. | 17:46:04 |
Buckley | In reply to @linus.heckemann:matrix.mayflower.de that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string * not sure. i dont use meta.nodeNixpkgs | 17:46:42 |
Zhaofeng Li | In reply to @linus.heckemann:matrix.mayflower.de that is, if I use meta.nodeNixpkgs it will deploy using the nixpkgs I want it to, but have an incorrect version string Hmm, interesting. Do you have a minimal repro? Or I can try doing it sometime today | 18:26:09 |
Zhaofeng Li | In reply to @linus.heckemann:matrix.mayflower.de Is there a way to pass the flake inputs on to all machine configs? I'd like to do things like imports = [ "${inputs.nixos-mailserver}/default.nix" ]; in my machine configs. You can pass the inputs using either meta.specialArgs.inputs = inputs; or _module.args.inputs = inputs; in a node config | 18:27:23 |
Zhaofeng Li | Then inputs will be available as a NixOS module parameter. You can also go the overlays way, though. | 18:28:09 |
Linux Hackerman is moving: @linus:schreibt.jetzt | In reply to @zhaofeng:zhaofeng.li You can pass the inputs using either meta.specialArgs.inputs = inputs; or _module.args.inputs = inputs; in a node config I tried the latter, it resulted in infinite recursion in combination with imports = [ inputs.nixos-mailserver ]; | 19:36:43 |
Linux Hackerman is moving: @linus:schreibt.jetzt | maybe specialArgs doesn't have that problem though? I'll give it a try | 19:36:59 |
Linux Hackerman is moving: @linus:schreibt.jetzt | also, a feature I'd like in colmena: the ability to pass in nixos evaluations rather than nixos configs. That would open up a lot of possibilities, including a nixus-like system where the whole deployment can be made of nixos modules too. Not sure if that goes within the "vision" of colmena though, and if not that's fine --- I don't want colmena to succumb to feature creep either :) | 19:48:12 |
| ma27 joined the room. | 22:52:02 |
26 Jan 2022 |
Zhaofeng Li | In reply to @github:maunium.net [zhaofengli/colmena] JCapucho opened
issue
#50: Nixpkgs fails to build on unstable
Hi, I'm using colmena with a flake to build a node that uses the nixos-unstable branch of nixpkgs (commit is https://github.com/NixOS/nixpkgs/commit/689b76bcf36055afdeb2e9852f5ecdd2bf483f87), but it's failing to build.
In the start of the log I see a warning with
capucho-nixos | trace: warning: The following Nixpkgs configuration keys set in meta.nixpkgs will be ignored: path
Which leads me to believe that the issue might be caused by ignoring the path attribute introduced in https://github.com/NixOS/nixpkgs/pull/153594
Here's the log of running colmena build --show-trace --verbose
log.txt
For those using Colmena with nixpkgs unstable, have you encountered problems related to split doc builds? If so, could you test if the current main and this 0.2 backport branch fix the problem? | 02:22:33 |
Zhaofeng Li | Admittedly I ran into the problem a couple of weeks ago in my setup when I rebased against master, but there were comments about it blocking the channel so I disabled it locally without looking closer. Then I kind of forgot about it 🙁 | 02:24:54 |
Linux Hackerman is moving: @linus:schreibt.jetzt | In reply to @linus.heckemann:matrix.mayflower.de maybe specialArgs doesn't have that problem though? I'll give it a try same problem :/ | 07:39:34 |
Zhaofeng Li | What does your imports looks like? | 07:50:22 |
Zhaofeng Li | * What does your imports look like? | 07:50:33 |
Zhaofeng Li | In reply to @linus.heckemann:matrix.mayflower.de I tried the latter, it resulted in infinite recursion in combination with imports = [ inputs.nixos-mailserver ]; Oh right, you probably want inputs.nixos-mailserver.nixosModule | 07:50:50 |
Linux Hackerman is moving: @linus:schreibt.jetzt | { config, pkgs, inputs, ... }:
{
imports =
[
inputs.nixos-mailserver.nixosModule
];
| 08:29:28 |
Linux Hackerman is moving: @linus:schreibt.jetzt | also causes infinite recursion | 08:29:36 |
Linux Hackerman is moving: @linus:schreibt.jetzt | I believe this is because inputs depends on the closure of nixos modules in the system, but the closure of nixos modules depends on inputs (because inputs is used right there in imports ). | 08:30:24 |
Linux Hackerman is moving: @linus:schreibt.jetzt | inputs would have to be passed in "from outside" and can't be defined within a module. | 08:30:40 |