From 75add386d3ff362d0a1329484efe228d14d63065 Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Fri, 14 Sep 2018 21:52:12 +0200 Subject: [PATCH] installer: prefer nix from default profile Using a nix 2.1 nix-channel/nix-env with a 2.0 nix-daemon doesn't work because the buildenv implementation was moved to the daemon. This means the nix version of the target darwin system can't be used because the daemon isn't upgraded yet. error: unsupported builtin function 'buildenv' --- pkgs/darwin-installer/configuration.nix | 2 ++ pkgs/darwin-installer/default.nix | 13 +++++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/pkgs/darwin-installer/configuration.nix b/pkgs/darwin-installer/configuration.nix index bc40563..f51c7f1 100644 --- a/pkgs/darwin-installer/configuration.nix +++ b/pkgs/darwin-installer/configuration.nix @@ -11,6 +11,8 @@ with lib; users.knownUsers = [ "nixbld1" "nixbld2" "nixbld3" "nixbld4" "nixbld5" "nixbld6" "nixbld7" "nixbld8" "nixbld9" "nixbld10" ]; system.activationScripts.preUserActivation.text = mkBefore '' + PATH=/nix/var/nix/profiles/default/bin:$PATH + darwinPath=$(NIX_PATH=${concatStringsSep ":" config.nix.nixPath} nix-instantiate --eval -E '' 2> /dev/null) || true if ! test -e "$darwinPath"; then if test -t 1; then diff --git a/pkgs/darwin-installer/default.nix b/pkgs/darwin-installer/default.nix index 5346396..638f2bb 100644 --- a/pkgs/darwin-installer/default.nix +++ b/pkgs/darwin-installer/default.nix @@ -24,8 +24,7 @@ stdenv.mkDerivation { shellHook = '' set -e - orig_path="$PATH" - export PATH="${pkgs.openssh}/bin:/usr/bin:/bin:/usr/sbin:/sbin" # ssh in case nix needs it + export PATH=/nix/var/nix/profiles/default/bin:${nix}/bin:${pkgs.openssh}/bin:/usr/bin:/bin:/usr/sbin:/sbin action=switch while [ "$#" -gt 0 ]; do @@ -45,9 +44,7 @@ stdenv.mkDerivation { echo >&2 "Installing nix-darwin..." echo >&2 - export nix=${nix} - - config=$($nix/bin/nix-instantiate --eval -E '' 2> /dev/null || echo "$HOME/.nixpkgs/darwin-configuration.nix") + config=$(nix-instantiate --eval -E '' 2> /dev/null || echo "$HOME/.nixpkgs/darwin-configuration.nix") if ! test -f "$config"; then echo "copying example configuration.nix" >&2 mkdir -p "$HOME/.nixpkgs" @@ -61,15 +58,15 @@ stdenv.mkDerivation { read -p "Would you like edit the default configuration.nix before starting? [y/n] " i case "$i" in y|Y) - PATH="$orig_path" ''${EDITOR:-nano} "$config" + ''${EDITOR:-nano} "$config" ;; esac fi export NIX_PATH=${nixPath} - system=$($nix/bin/nix-build '' -I "user-darwin-config=$config" -A system --no-out-link) - export PATH=$system/sw/bin:$PATH + system=$(nix-build '' -I "user-darwin-config=$config" -A system --no-out-link) + export PATH=$system/sw/bin:$PATH darwin-rebuild "$action" -I "user-darwin-config=$config" echo >&2