aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Sánchez de La Lama <csanchezdll@gmail.com>2016-07-27 14:27:00 +0200
committerLudovic Courtès <ludo@gnu.org>2016-07-27 23:08:20 +0200
commitcad7e6abafc14de220265e09a0fc4bbd96664599 (patch)
tree8394e0d68c59335b700befd21e7b2a07b9106c14
parent9712ef8d426375f7bc1975ed4076663176c48735 (diff)
downloadguix-cad7e6abafc14de220265e09a0fc4bbd96664599.tar
guix-cad7e6abafc14de220265e09a0fc4bbd96664599.tar.gz
system: Source /etc/environment before $HOME/.guix-profile/etc/profile.
* gnu/system.scm (operating-system-etc-service) <profile>: Move sourcing of /etc/environment before that of $HOME/.guix-profile/etc/profile. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/system.scm21
1 files changed, 11 insertions, 10 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index 476720b9f9..04dd7a845c 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -408,6 +408,17 @@ GUIX_PROFILE=/run/current-system/profile \\
# Prepend setuid programs.
export PATH=/run/setuid-programs:$PATH
+# Since 'lshd' does not use pam_env, /etc/environment must be explicitly
+# loaded when someone logs in via SSH. See <http://bugs.gnu.org/22175>.
+# We need 'PATH' to be defined here, for 'cat' and 'cut'. Do this before
+# reading the user's 'etc/profile' to allow variables to be overridden.
+if [ -f /etc/environment -a -n \"$SSH_CLIENT\" \\
+ -a -z \"$LINUX_MODULE_DIRECTORY\" ]
+then
+ . /etc/environment
+ export `cat /etc/environment | cut -d= -f1`
+fi
+
if [ -f \"$HOME/.guix-profile/etc/profile\" ]
then
# Load the user profile's settings.
@@ -419,16 +430,6 @@ else
export PATH=\"$HOME/.guix-profile/bin:$PATH\"
fi
-# Since 'lshd' does not use pam_env, /etc/environment must be explicitly
-# loaded when someone logs in via SSH. See <http://bugs.gnu.org/22175>.
-# We need 'PATH' to be defined here, for 'cat' and 'cut'.
-if [ -f /etc/environment -a -n \"$SSH_CLIENT\" \\
- -a -z \"$LINUX_MODULE_DIRECTORY\" ]
-then
- . /etc/environment
- export `cat /etc/environment | cut -d= -f1`
-fi
-
# Set the umask, notably for users logging in via 'lsh'.
# See <http://bugs.gnu.org/22650>.
umask 022