summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Flynn <[email protected]>2025-02-01 07:52:30 -0500
committerSeth Flynn <[email protected]>2025-02-01 07:52:30 -0500
commit81d7539b3afb1ceb75fdc65508e3e4ef20a1c5b1 (patch)
tree4fcdd534b5e75e7c06d8a9c67ba896aee9b55a05
parent460607357fbf6e9a4a1f5335224f6312768fd912 (diff)
nixos/nix: use systemd-tmpfiles for inputs in $NIX_PATH
-rw-r--r--modules/nixos/defaults/nix.nix14
-rw-r--r--modules/shared/defaults/nix.nix7
2 files changed, 19 insertions, 2 deletions
diff --git a/modules/nixos/defaults/nix.nix b/modules/nixos/defaults/nix.nix
index e55faf4..064b0d9 100644
--- a/modules/nixos/defaults/nix.nix
+++ b/modules/nixos/defaults/nix.nix
@@ -1,4 +1,4 @@
-{ lib, ... }:
+{ lib, inputs, ... }:
{
nix = {
channel.enable = lib.mkDefault false;
@@ -9,4 +9,16 @@
};
nixpkgs.config.allowAliases = false;
+
+ # Link inputs for use in `$NIX_PATH`
+ systemd.tmpfiles.settings = {
+ nix-inputs = lib.mapAttrs' (
+ name: input:
+ lib.nameValuePair "/etc/nix/inputs/${name}" {
+ L = {
+ argument = input.outPath;
+ };
+ }
+ ) inputs;
+ };
}
diff --git a/modules/shared/defaults/nix.nix b/modules/shared/defaults/nix.nix
index eb678a4..8ecdfe1 100644
--- a/modules/shared/defaults/nix.nix
+++ b/modules/shared/defaults/nix.nix
@@ -2,6 +2,7 @@
config,
lib,
pkgs,
+ inputs,
...
}:
let
@@ -13,6 +14,10 @@ let
|| lib.versionAtLeast config.nix.package.version "2.90.0"; # but not in lix yet
hasAlwaysAllowSubstitutes = lib.versionAtLeast config.nix.package.version "2.19.0";
+
+ # Use systemd-tmpfiles on Linux
+ nixPathFromInput =
+ name: input: "${name}=${if isLinux then "/etc/nix/inputs/${name}" else input.outPath}";
in
{
config = lib.mkMerge [
@@ -33,7 +38,7 @@ in
};
# See comment below
- nixPath = [ "nixpkgs=${config.nixpkgs.flake.source}" ];
+ nixPath = lib.mapAttrsToList nixPathFromInput inputs;
};
nixpkgs = {