[arch-projects] [initscripts] [PATCH 04/21] rc.sysinit: Fix setting locale

Kurt J. Bosch kjb-temp-2009 at alpenjodel.de
Tue Jun 28 09:27:28 EDT 2011


When using process substitution with status(), the resulting /dev/fd/* might get lost before it is actualy used. This happens in case a custom stat_busy() forks a subshell.
---
 rc.sysinit |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/rc.sysinit b/rc.sysinit
index fca8b43..a63da9b 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -238,8 +238,9 @@ stat_done
 		eval 'echo "$HOSTNAME" > /proc/sys/kernel/hostname'
 
 # 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
+stat_busy "Setting Locale: ${LOCALE:=en_US}"
+	echo "export LANG=$LOCALE" > /etc/profile.d/locale.sh &&
+	chmod 0755 /etc/profile.d/locale.sh && stat_done || stat_fail
 
 if [[ ${LOCALE,,} =~ utf ]]; then
 	stat_busy "Setting Consoles to UTF-8 mode"
-- 
1.7.1



More information about the arch-projects mailing list