From d07feb43b2018d34ecfbdb7b02f28065e49abf44 Mon Sep 17 00:00:00 2001 From: Emily Date: Tue, 4 Feb 2025 03:43:24 +0000 Subject: [PATCH] =?UTF-8?q?nix-tools:=20re=E2=80=90add=20`nixPackage`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (With some tweaks to handle `nix.enable` and order it at a more sensible position in the `$PATH`.) The installers actually install Nix into `root`’s profile for some reason, which means that the path’s prioritization backfires when the script runs as root and we’re managing the Nix installation. When running `darwin-rebuild` as a normal user, this wasn’t a problem. Maybe we should just have a check to make sure there’s no conflicting Nix in `root`’s profile – it seems pretty bad for `root` to get the wrong Nix – but it would trigger for almost everyone, which seems kind of annoying. I guess we could automatically remove it from `root`’s profile if it matches what’s in `/nix/var/nix/profiles/default`… This reverts commit 02232f71c5712d08d6fb9d0dbedec50509cebbba. --- modules/nix/nix-darwin.nix | 1 + pkgs/nix-tools/default.nix | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/nix/nix-darwin.nix b/modules/nix/nix-darwin.nix index 677acbe5..a22e3e03 100644 --- a/modules/nix/nix-darwin.nix +++ b/modules/nix/nix-darwin.nix @@ -5,6 +5,7 @@ let inherit (config.system) profile; inherit (config.environment) systemPath; nixPath = lib.optionalString config.nix.enable (lib.concatStringsSep ":" config.nix.nixPath); + nixPackage = if config.nix.enable then config.nix.package else null; }; darwin-uninstaller = pkgs.callPackage ../../pkgs/darwin-uninstaller { }; diff --git a/pkgs/nix-tools/default.nix b/pkgs/nix-tools/default.nix index 8d6b89b7..a5414cbd 100644 --- a/pkgs/nix-tools/default.nix +++ b/pkgs/nix-tools/default.nix @@ -21,6 +21,7 @@ "/usr/sbin" "/sbin" ] +, nixPackage ? null , # This should be kept in sync with the default `nix.nixPath`. nixPath ? lib.concatStringsSep ":" [ "darwin-config=/etc/nix-darwin/configuration.nix" @@ -29,7 +30,7 @@ }: let - extraPath = lib.makeBinPath [ coreutils jq git ]; + extraPath = lib.makeBinPath [ coreutils jq git nixPackage ]; writeProgram = name: env: src: substituteAll ({