Hi, I’m currently trying to integrate flakes with my system configuration, which is built using this
flake.nix
:
{ description = "Flake (unstable) that manage my system configuration, replacement to niv.";
inputs = {
stable.url = "github:NixOS/nixpkgs/nixos-20.03";
unstable.url = "nixpkgs/nixos-unstable";
home = {
url = "github:rycee/home-manager/bqv-flakes";
inputs.nixpkgs.follows = "stable";
};
nur.url = "github:nix-community/NUR";
hardware.url = "github:NixOS/nixos-hardware";
};
outputs = { self, stable, unstable, home, nur, hardware }@inputs:
let
system = "x86_64-linux";
inherit (inputs.stable) lib;
overlays = {
unstable = final: prev: {
unstable = (import inputs.unstable {
inherit system;
});
};
};
in {
nixosConfigurations.zeus = lib.nixosSystem {
inherit system;
modules =
[
./default.nix
{ nixpkgs.overlays = [ inputs.nur.overlay overlays.unstable ];
system.configurationRevision = stable.lib.mkIf (self ? rev) self.rev; }
inputs.stable.nixosModules.notDetected
inputs.home.nixosModules.home-manager
];
specialArgs = { inherit inputs; };
};
};
}
. All this should actually work, but it prints out this :
error: --- EvalError -------------------------------------------------------------- nix
at: (90:39) in file: /nix/store/yv3wby54vzashi8yivgbigk8b063j4na-source/pkgs/top-level/impure.nix
89| else (if args ? localSystem then {}
90| else { system = builtins.currentSystem; }) // localSystem;
| ^
91| })
attribute 'currentSystem' missing
The only way to rebuild my configuration using flakes was this : nix build .#nixosConfigurations.zeus.config.system.build.toplevel --impure
, but I’d like to be able to rebuid my configuration using nixos-rebuild switch --flake '.#'
. Reading through the man pages, it seems that impure flag is needed when I try to access something marked as a mutable path / repository. Does anyone has a hint ? I cannot figure out what’s the problem on my own. Thanks!