Disable pre-build-hook on the Macs
The pre-build-hook segfaults and we don't need it because we're not doing sandbox builds.
Eelco Dolstra committed
Aug 12, 2016 at 16:55 UTC
a122f418797713d519aadf02e677fce0dc1cb446
2 files changed
+68
delft/scripts/nix-mac-installer.sh
new
+49
@@ -0,0 +1,49 @@
1
+#! /usr/bin/env bash
2
+
3
+set -e
4
+
5
+if [[ $(id -u) != 0 ]]; then
6
+ echo "$0: please run this script as root"
7
+ exit 1
8
+fi
9
+
10
+export HOME=/var/root
11
+
12
+if ! dscl . read /Groups/nixbld > /dev/null 2>&1; then
13
+ dseditgroup -o create nixbld -q
14
+fi
15
+
16
+gid=$(dscl . -read /Groups/nixbld | awk '($1 == "PrimaryGroupID:") {print $2 }')
17
+
18
+echo "created nixbld group with gid $gid"
19
+
20
+for i in $(seq 1 10); do
21
+ user=/Users/nixbld$i
22
+ uid="$((30000 + $i))"
23
+ dscl . -create $user
24
+ dscl . -create $user RealName "Nix build user $i"
25
+ dscl . -create $user PrimaryGroupID "$gid"
26
+ dscl . -create $user UserShell /usr/bin/false
27
+ dscl . -create $user NFSHomeDirectory /var/empty
28
+ dscl . -create $user UniqueID "$uid"
29
+ dseditgroup -o edit -a nixbld$i -t user nixbld
30
+ echo "created nixbld$i user with uid $uid"
31
+done
32
+
33
+curl https://nixos.org/nix/install | sh
34
+
35
+mkdir -p /etc/nix
36
+echo "pre-build-hook = " > /etc/nix/nix.conf
37
+
38
+mkdir -p /var/root/.ssh
39
+touch /var/root/.ssh/authorized_keys
40
+grep -v "buildfarm@nixos" /var/root/.ssh/authorized_keys > /var/root/.ssh/authorized_keys.tmp || true
41
+echo 'command="TMPDIR=/var/tmp SSL_CERT_FILE=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt /nix/var/nix/profiles/default/bin/nix-store --serve --write" ssh-dss AAAAB3NzaC1kc3MAAACBAMHRjGSDaBp4Z30JF4S9ApabBCpdr57Ad0aD9oH2A/WEFnWYQSAzK4E/HHD2DV2XP1stNkZ1ks2v3F4Yu/veR+qVlUWbJW1RIIfuQgkG44K0R3C2qx4BAZUVYzju1NVCJbBOO6ipVY9cfmpokV52HZFhP/2HocTNLoav3F0AsbbJAAAAFQDaJiQdpJBEa4Wr5FfVl1kYqmQZJwAAAIEAwbern5XL+SNIMa+sJ3CBhrWyYExYWiUbdmhQEfyEAUmoPsEr1qpb+0WREic9Nrxz48QWZDK5xMvzZyQEkuAMJUBWcdm12rME7WMvg7OZGr9DADjAtfMfj3Ui2XvOuQ3ia/OTsMGkQTDWnkOM9Ni128SNSl9urFBlXATdGvo+468AAACBAK8s6LddhhkRqsF/l/L2ooS8c8A1rTFWAOy3/sgXFNvMyS/Mig2p966xRrRHr7Bc+H2SuKEE5WmLCXqymgxLHhrFU4zm/W/ej1yB1CAThd4xUfgJu4touJROjvcD1zzlmLeat0fp2k5mCuiLKcTKi0vxKWiiopF9nvBBK+7ODPC7 buildfarm@nixos' >> /var/root/.ssh/authorized_keys.tmp
42
+mv /var/root/.ssh/authorized_keys.tmp /var/root/.ssh/authorized_keys
43
+
44
+service_plist=/Library/LaunchDaemons/org.nixos.nix-daemon.plist
45
+
46
+ln -sfn /nix/var/nix/profiles/default$service_plist $service_plist
47
+launchctl unload $service_plist || true
48
+launchctl load $service_plist
49
+launchctl start $service_plist
delft/scripts/nix-mac-nuke.sh
new
+19
@@ -0,0 +1,19 @@
1
+#! /usr/bin/env bash
2
+
3
+service_plist=/Library/LaunchDaemons/org.nixos.nix-daemon.plist
4
+
5
+launchctl stop $service_plist
6
+launchctl unload $service_plist
7
+
8
+dscl . -delete /Groups/nixbld
9
+
10
+for i in $(seq 1 20); do
11
+ dscl . -delete /Users/nixbld$i
12
+done
13
+
14
+sudo rm -f $service_plist
15
+
16
+sudo rm -rf /nix /etc/nix/nix.conf
17
+
18
+rm -f $HOME/.nix-channels $HOME/.nix-profile
19
+rm -rf $HOME/.nix-defexpr