Flakes: Difference between revisions
imported>Groves m Show the full nixVersions.nix_2_7 in the comment. The short form like nix_2_7 stopped at nix_2_6 |
imported>Williamvds Example of how to make a <nixpkgs> import pure |
||
Line 239: | Line 239: | ||
* fetchurl and fetchtar [https://github.com/NixOS/nix/blob/36c4d6f59247826dde32ad2e6b5a9471a9a1c911/src/libexpr/primops/fetchTree.cc#L201 require] a sha256 argument to be considered pure. | * fetchurl and fetchtar [https://github.com/NixOS/nix/blob/36c4d6f59247826dde32ad2e6b5a9471a9a1c911/src/libexpr/primops/fetchTree.cc#L201 require] a sha256 argument to be considered pure. | ||
* builtins.currentSystem is non-hermetic and impure. This can usually be avoided by passing the system (i.e., x86_64-linux) explicitly to derivations requiring it. | * builtins.currentSystem is non-hermetic and impure. This can usually be avoided by passing the system (i.e., x86_64-linux) explicitly to derivations requiring it. | ||
* Imports from channels like <code><nixpkgs></code> can be made pure by instead importing from the <code>output</code> function in <code>flake.nix</code>, where the arguments provide the store path to the flake's inputs: | |||
<syntaxHighlight lang=nix> | |||
outputs = { self, nixpkgs, ... }: | |||
{ | |||
nixosConfigurations.machine = nixpkgs.lib.nixosSystem { | |||
system = "x86_64-linux"; | |||
modules = [ | |||
(nixpkgs + "/nixos/modules/<some-module>.nix") | |||
./machine.nix | |||
]; | |||
}; | |||
}; | |||
</syntaxHighlight> | |||
== The nix flakes command == | == The nix flakes command == |