[arch-projects] [initscripts] [PATCH 11/12] Simplify LC_* unsetting
Tom Gundersen
teg at jklm.no
Sat Jun 25 17:57:45 EDT 2011
On Sat, Jun 25, 2011 at 11:40 PM, Kurt J. Bosch
<kjb-temp-2009 at alpenjodel.de> wrote:
> Dave Reisner, 2011-06-25 20:00:
>>
>> On Sat, Jun 25, 2011 at 12:16:03PM +0200, Kurt J. Bosch wrote:
>>>
>>> ---
>>> functions | 4 +---
>>> 1 files changed, 1 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/functions b/functions
>>> index 86b9602..2e4ba42 100644
>>> --- a/functions
>>> +++ b/functions
>>> @@ -62,9 +62,7 @@ unset TERM_COLORS
>>> unset TZ
>>>
>>> # sanitize the locale settins
>>> -unset LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY \
>>> - LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE \
>>> - LC_MEASUREMENT LC_IDENTIFICATION LC_ALL
>>> +unset "${!LC_@}"
>>> if [[ $DAEMON_LOCALE = [yY][eE][sS]&& $LOCALE ]]; then
>>> export LANG="${LOCALE}"
>>> else
>>> --
>>> 1.7.1
>>>
>>
>> I'm all for simplifying things, but this will unset _anything_ starting
>> with LC_ which could conceivably be something a calling script cares
>> about.
>>
>> dave
>
> NACK
> We talk about rc scripts and daemons here don't we?
> At the point where functions are sourced they should not care about anything
> else than what is normally exported by init or supported in rc.conf. Ideally
> we should unset _everything_ other to avoid unexpected daemon restart
> behavior. Things special to a daemon script should go into
> /etc/conf.d/$daemon which is sourced after functions.
I think it would be best if we were able to unset all variables except
for the ones we explicitly want.
I have been meaning to look into using /etc/initscript to set/unset
system-wide variables, but I haven't had the time to check if this
really works the way I want.
If I understand correctly, the variables exported in /etc/initscript
will be inherited by all processes on the system, (unless a child
unsets them of course). This would allow us to put the LC_* and PATH
in there (rather than in /etc/profile and /etc/profile.d/locale.sh),
and things should JustWork(TM).
At the moment it looks like agetty is clearing some (if not all) the
env var's it is passed, but I have not yet found out exactly how it
works.
-t
More information about the arch-projects
mailing list