system: /etc/profile reads /etc/environment for the sake of lshd.

Fixes <http://bugs.gnu.org/22175>.

* gnu/system.scm (operating-system-etc-service)[profile]: Add hack to
define variables from /etc/environment.
This commit is contained in:
Ludovic Courtès 2016-02-03 09:07:35 +01:00
parent 3a6a0f6013
commit 2a5f0db4c4

View file

@ -465,6 +465,17 @@ (define* (operating-system-etc-service os)
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
# Allow GStreamer-based applications to find plugins.
export GST_PLUGIN_PATH=\"$HOME/.guix-profile/lib/gstreamer-1.0\"