FS#26178 - [initscripts] 2011.09.2-1 rc.conf sourced by locale.sh breaks if login sh isn't bash-compatible
Attached to Project:
Arch Linux
Opened by fmk (clownish) - Saturday, 01 October 2011, 17:31 GMT
Last edited by Tom Gundersen (tomegun) - Tuesday, 18 October 2011, 16:51 GMT
Opened by fmk (clownish) - Saturday, 01 October 2011, 17:31 GMT
Last edited by Tom Gundersen (tomegun) - Tuesday, 18 October 2011, 16:51 GMT
|
Details
Description:
At login, the login shell sources /etc/profile which in turn sources /etc/profile.d/locale.sh, which sources rc.conf, which breaks when sourced by a shell which is not bash-compatible (dash e.g). Setting the right LOCALE directly in locale.sh and removing '. /etc/rc.conf' solves this. Additional info: * package version(s) initscripts-2011.09.2 * config and/or log files etc. Steps to reproduce: Set login shell to something nonbash-compatible like dash and log in. (e.g dash will break with: '-dash: 42: /etc/rc.conf: Syntax error: "(" unexcepted' |
This task depends upon
Closed by Tom Gundersen (tomegun)
Tuesday, 18 October 2011, 16:51 GMT
Reason for closing: Implemented
Tuesday, 18 October 2011, 16:51 GMT
Reason for closing: Implemented
Comment by quantax (quantax) -
Sunday, 16 October 2011, 23:51 GMT
Comment by Tom Gundersen (tomegun) -
Monday, 17 October 2011, 05:29 GMT
Comment by
Matthias Dienstbier (fs4000) -
Tuesday, 18 October 2011, 11:20 GMT
Comment by Tom Gundersen (tomegun) -
Tuesday, 18 October 2011, 16:50 GMT
Here is a quick hack allowing bash incompatible shells setting
LOCALE.
@quantax: thanks, I might end up using something like this (I was
just about to get this done today). However, I don't think the
users of dash would appreciate bash being ran all the time, so I'd
like to find some better way, maybe using grep. Also, I'd like a
solution that fixes all of rc.conf being sourced (we don't want
all these vars in the environment).
In the current solution I don't think DAEMON_LOCALE with
locale.conf will work because $LANG doesn't get exported.
The fix for this is in [testing]. Thanks for pointing it out.