Merge pull request #1700 from grahamc/fixup-darwin-hs

darwin installer: fix on High Sierra
This commit is contained in:
Eelco Dolstra 2017-12-12 11:51:14 +01:00 committed by GitHub
commit 7487debaf5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -269,7 +269,7 @@ ready to go.
Try it! Open a new terminal, and type: Try it! Open a new terminal, and type:
$ nix-shell -p figlet -p lolcat --run "echo 'nix rules' | figlet | lolcat" $ nix-shell -p nix-info --run "nix-info -m"
Thank you for using this installer. If you have any feedback, don't Thank you for using this installer. If you have any feedback, don't
hesitate: hesitate:
@ -491,10 +491,8 @@ create_build_user_for_core() {
if ! /usr/bin/dscl . -read "$dsclpath" > /dev/null 2>&1; then if ! /usr/bin/dscl . -read "$dsclpath" > /dev/null 2>&1; then
_sudo "Creating the Nix build user, $username" \ _sudo "Creating the Nix build user, $username" \
/usr/sbin/sysadminctl -addUser -fullName "Nix build user $coreid" \ /usr/bin/dscl . create "$dsclpath" \
-home /var/empty \ UniqueID "${uid}"
-UID "${uid}" \
-addUser "${username}"
row " Created" "Yes" row " Created" "Yes"
else else
actual_uid=$(dsclattr "$dsclpath" "UniqueID") actual_uid=$(dsclattr "$dsclpath" "UniqueID")
@ -522,6 +520,22 @@ EOF
row " IsHidden" "Yes" row " IsHidden" "Yes"
fi fi
if [ "$(dsclattr "$dsclpath" "NFSHomeDirectory")" = "/var/empty" ]; then
row " NFSHomeDirectory" "/var/empty"
else
_sudo "in order to give $username a safe home directory" \
/usr/bin/dscl . -create "$dsclpath" "NFSHomeDirectory" "/var/empty"
row " NFSHomeDirectory" "/var/empty"
fi
if [ "$(dsclattr "$dsclpath" "RealName")" = "Nix build user $coreid" ]; then
row " RealName" "Nix build user $coreid"
else
_sudo "in order to give $username a useful name" \
/usr/bin/dscl . -create "$dsclpath" "RealName" "Nix build user $coreid"
row " RealName" "Nix build user $coreid"
fi
if [ "$(dsclattr "$dsclpath" "UserShell")" = "/sbin/nologin" ]; then if [ "$(dsclattr "$dsclpath" "UserShell")" = "/sbin/nologin" ]; then
row " Logins Disabled" "Yes" row " Logins Disabled" "Yes"
else else
@ -539,11 +553,11 @@ EOF
row " Member of $NIX_BUILD_GROUP_NAME" "Yes" row " Member of $NIX_BUILD_GROUP_NAME" "Yes"
fi fi
if [ "$(dsclattr "$dsclpath" "PrimaryGroupId")" = "$NIX_BUILD_GROUP_ID" ]; then if [ "$(dsclattr "$dsclpath" "PrimaryGroupID")" = "$NIX_BUILD_GROUP_ID" ]; then
row " PrimaryGroupID" "$NIX_BUILD_GROUP_ID" row " PrimaryGroupID" "$NIX_BUILD_GROUP_ID"
else else
_sudo "to let the nix daemon use this user for builds (this might seem redundant, but there are two concepts of group membership)" \ _sudo "to let the nix daemon use this user for builds (this might seem redundant, but there are two concepts of group membership)" \
/usr/bin/dscl . -create "$dsclpath" "PrimaryGroupId" "$NIX_BUILD_GROUP_ID" /usr/bin/dscl . -create "$dsclpath" "PrimaryGroupID" "$NIX_BUILD_GROUP_ID"
row " PrimaryGroupID" "$NIX_BUILD_GROUP_ID" row " PrimaryGroupID" "$NIX_BUILD_GROUP_ID"
fi fi