[arch-projects] [initscripts] [PATCH] Setting Locale: fix status reporting FAIL erroneously

Kurt J. Bosch kjb-temp-2009 at alpenjodel.de
Sun Jun 26 07:03:53 EDT 2011


Dave Reisner, 2011-06-25 15:27:
> On Sat, Jun 25, 2011 at 03:17:40PM +0200, Kurt J. Bosch wrote:
>> From: "Kurt J. Bosch"<kjb-temp-2009 at alpenjodel.de>
>>
>> ---
>>   rc.sysinit |    2 +-
>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/rc.sysinit b/rc.sysinit
>> index 4073fb9..75f8095 100755
>> --- a/rc.sysinit
>> +++ b/rc.sysinit
>> @@ -229,7 +229,7 @@ stat_done
>>
>>   # Flush old locale settings and set user defined locale
>>   status "Setting Locale: ${LOCALE:=en_US}" \
>> -	install -Tm 0755<(echo "export LANG=$LOCALE") /etc/profile.d/locale.sh
>> +	eval 'install -Tm 0755<(echo "export LANG=$LOCALE") /etc/profile.d/locale.sh'
>>
>>   if [[ ${LOCALE,,} =~ utf ]]; then
>>   	stat_busy "Setting Consoles to UTF-8 mode"
>> --
>> 1.7.5.2
>>
>
> NACK.
>
> As far as I can tell, the eval is not at all necessary.
>
> dave
>
I was able to track this down to the scripts from fbsplash (AUR).

The following test case (run in a terminal)

#!/bin/bash

# custom override example
stat_busy() {
	if (( PUSH_MSG )); then
		# This triggers the error in "$@" below
		# actual code was:
		# echo set message "$1" > "$spl_fifo" &
		: &
	fi
	echo "$1" BUSY
}

status() {
	stat_busy "$1"
	shift
	"$@"
	local retval=$?
	(( retval == 0 )) && echo DONE || echo FAIL "($retval)"
}

PUSH_MSG=0 status "test #0" cat <(echo foo)
PUSH_MSG=1 status "test #1" cat <(echo foo)

gives:

test #0 BUSY
foo
DONE
test #1 BUSY
cat: /dev/fd/63: No such file or directory
FAIL (1)

BASH version installed on Arch is
bash 4.2.010-1
GNU bash, version 4.2.10(2)-release (i686-pc-linux-gnu)

BTW same behavior on Scientific 6
GNU bash, version 4.1.2(1)-release (i386-koji-linux-gnu)

So i think we need the eval for now to work around this.

CCing Tom Gundersen.
-- 
Kurt
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: status-test-case.bash
URL: <http://mailman.archlinux.org/pipermail/arch-projects/attachments/20110626/ec0e0d35/attachment.ksh>


More information about the arch-projects mailing list