summary refs log tree commit diff
path: root/gnu
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 /gnu
parent9712ef8d426375f7bc1975ed4076663176c48735 (diff)
downloadguix-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>
Diffstat (limited to 'gnu')
-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