From d459d3307c7b1b10f6489ed048fff192e7834928 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Wed, 30 May 2018 09:11:09 -0400 Subject: [PATCH 1/2] nix-daemon.sh profile script: operate under `set -u` If the profile is sourced inside a script with `set -u`, the check for __ETC_PROFILE_NIX_SOURCED and NIX_SSL_CERT_FILE would raise an error. A simple guard around this check allows the script to operate under standard environments (where it is fairly reasonable to assume USER and HOME are set.) --- scripts/nix-profile-daemon.sh.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/nix-profile-daemon.sh.in b/scripts/nix-profile-daemon.sh.in index 52070e36a..1be9a0755 100644 --- a/scripts/nix-profile-daemon.sh.in +++ b/scripts/nix-profile-daemon.sh.in @@ -1,5 +1,5 @@ # Only execute this file once per shell. -if [ -n "$__ETC_PROFILE_NIX_SOURCED" ]; then return; fi +if [ -n "${__ETC_PROFILE_NIX_SOURCED:-}" ]; then return; fi __ETC_PROFILE_NIX_SOURCED=1 # Set up secure multi-user builds: non-root users build through the @@ -51,7 +51,7 @@ fi # Set $NIX_SSL_CERT_FILE so that Nixpkgs applications like curl work. -if [ ! -z "$NIX_SSL_CERT_FILE" ]; then +if [ ! -z "${NIX_SSL_CERT_FILE:-}" ]; then : # Allow users to override the NIX_SSL_CERT_FILE elif [ -e /etc/ssl/certs/ca-certificates.crt ]; then # NixOS, Ubuntu, Debian, Gentoo, Arch export NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt From 6ba1726eeb58cd8e7d69e2a090346f26fdf634a5 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Wed, 30 May 2018 09:35:21 -0400 Subject: [PATCH 2/2] install-multi-user: support 'set -u' runs, closes #2193 --- scripts/install-multi-user.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install-multi-user.sh b/scripts/install-multi-user.sh index b4eec2fe9..6ee8dd485 100644 --- a/scripts/install-multi-user.sh +++ b/scripts/install-multi-user.sh @@ -727,7 +727,7 @@ setup_default_profile() { _sudo "to installing a bootstrapping Nix in to the default Profile" \ HOME="$ROOT_HOME" "$NIX_INSTALLED_NIX/bin/nix-env" -i "$NIX_INSTALLED_NIX" - if [ -z "$NIX_SSL_CERT_FILE" ] || ! [ -f "$NIX_SSL_CERT_FILE" ]; then + if [ -z "${NIX_SSL_CERT_FILE:-}" ] || ! [ -f "${NIX_SSL_CERT_FILE:-}" ]; then _sudo "to installing a bootstrapping SSL certificate just for Nix in to the default Profile" \ HOME="$ROOT_HOME" "$NIX_INSTALLED_NIX/bin/nix-env" -i "$NIX_INSTALLED_CACERT" export NIX_SSL_CERT_FILE=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt