1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2025-03-13 20:30:02 +00:00

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'
This commit is contained in:
Daiderd Jordan 2018-09-14 21:52:12 +02:00
parent 48f3ed6301
commit 75add386d3
No known key found for this signature in database
GPG key ID: D02435D05B810C96
2 changed files with 7 additions and 8 deletions

View file

@ -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 '<darwin>' 2> /dev/null) || true
if ! test -e "$darwinPath"; then
if test -t 1; then

View file

@ -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 '<darwin-config>' 2> /dev/null || echo "$HOME/.nixpkgs/darwin-configuration.nix")
config=$(nix-instantiate --eval -E '<darwin-config>' 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 '<darwin>' -I "user-darwin-config=$config" -A system --no-out-link)
export PATH=$system/sw/bin:$PATH
system=$(nix-build '<darwin>' -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