From c51fe112cc73f87f282de24aa0fd929e72bb6ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=B6ller?= Date: Fri, 12 May 2023 14:56:23 +0200 Subject: [PATCH] treewide: pass system argument to eval-config.nix Calling `eval-config.nix` without a `system` from a Nix flake fails with `error: attribute 'currentSystem' missing` since #230523. Setting `system = null` removes the use of `currentSystem` and instead uses the value from the `nixpkgs` module. --- nixos/modules/virtualisation/nixos-containers.nix | 4 ++++ nixos/tests/containers-imperative.nix | 4 ++++ pkgs/top-level/all-packages.nix | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/nixos/modules/virtualisation/nixos-containers.nix b/nixos/modules/virtualisation/nixos-containers.nix index d54e2ed3f3ae1..c3949564d4bde 100644 --- a/nixos/modules/virtualisation/nixos-containers.nix +++ b/nixos/modules/virtualisation/nixos-containers.nix @@ -515,6 +515,10 @@ in in [ extraConfig ] ++ (map (x: x.value) defs); prefix = [ "containers" name ]; inherit (config) specialArgs; + + # The system is inherited from the host above. + # Set it to null, to remove the "legacy" entrypoint's non-hermetic default. + system = null; }).config; }; }; diff --git a/nixos/tests/containers-imperative.nix b/nixos/tests/containers-imperative.nix index 3007efaf88710..22b664a90e170 100644 --- a/nixos/tests/containers-imperative.nix +++ b/nixos/tests/containers-imperative.nix @@ -25,6 +25,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { system.stateVersion = "18.03"; }; }; + + # The system is inherited from the host above. + # Set it to null, to remove the "legacy" entrypoint's non-hermetic default. + system = null; }; in with pkgs; [ stdenv stdenvNoCC emptyContainer.config.containers.foo.path diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 22efeb42ebffc..fa0947bf2db45 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -39009,6 +39009,10 @@ with pkgs; then configuration else [configuration] ); + + # The system is inherited from the current pkgs above. + # Set it to null, to remove the "legacy" entrypoint's non-hermetic default. + system = null; }; in c.config.system.build // c;