Users with strict umasks (e.g. 0077) would end up with an unreadable
/gnu (mode 0700) and no way to run guix.
Reported by A. <@aaap:matrix.org> on #guix.
* etc/guix-install.sh (main): Set umask before installing anything.
Don't flatten it into a string only to split it again later.
* etc/guix-install.sh (chk_require): Iterate over array elements, not
string tokens.
(main): Pass $REQUIRE as an array of arguments.
Fixes <https://bugs.gnu.org/34279>.
Reported by Claes Wallin (韋嘉誠) <clacke@lysator.liu.se>.
* etc/guix-install.sh: Change shebang to #!/bin/sh and add 'if'
statement to spawn Bash if needed.
* etc/guix-install.sh (chk_require): Because of the set -e option, Bash was
exiting when the command `command -v "$c" &>/dev/null' was running on its
own. Instead, we now test the command and accumulate warning messages in a
single statement by chaining the command with a logical OR.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* etc/guix-install.sh (ROOT_HOME): New variable.
(sys_create_store, sys_enable_guix_daemon, sys_authorize_build_farms):
Use ROOT_HOME instead of ~root or the HOME environment variable.
* doc/guix.texi (Binary Installation): Instead of assuming that ~ and
$HOME refer to root's directory simply because commands are being run
as root, explicilty refer to it via ~root.
Fixes: <https://bugs.gnu.org/30728>