Skip to content

Commit a4c21ff

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Support unicode via en_US.utf8"
2 parents 7b3968b + d095e97 commit a4c21ff

1 file changed

Lines changed: 29 additions & 3 deletions

File tree

stack.sh

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,37 @@ set -o xtrace
2727
# Make sure custom grep options don't get in the way
2828
unset GREP_OPTIONS
2929

30-
# Sanitize language settings to avoid commands bailing out
31-
# with "unsupported locale setting" errors.
30+
# NOTE(sdague): why do we explicitly set locale when running stack.sh?
31+
#
32+
# Devstack is written in bash, and many functions used throughout
33+
# devstack process text comming off a command (like the ip command)
34+
# and do transforms using grep, sed, cut, awk on the strings that are
35+
# returned. Many of these programs are interationalized, which is
36+
# great for end users, but means that the strings that devstack
37+
# functions depend upon might not be there in other locales. We thus
38+
# need to pin the world to an english basis during the runs.
39+
#
40+
# Previously we used the C locale for this, every system has it, and
41+
# it gives us a stable sort order. It does however mean that we
42+
# effectively drop unicode support.... boo! :(
43+
#
44+
# With python3 being more unicode aware by default, that's not the
45+
# right option. While there is a C.utf8 locale, some distros are
46+
# shipping it as C.UTF8 for extra confusingness. And it's support
47+
# isn't super clear across distros. This is made more challenging when
48+
# trying to support both out of the box distros, and the gate which
49+
# uses diskimage builder to build disk images in a different way than
50+
# the distros do.
51+
#
52+
# So... en_US.utf8 it is. That's existed for a very long time. It is a
53+
# compromise position, but it is the least worse idea at the time of
54+
# this comment.
55+
#
56+
# We also have to unset other variables that might impact LC_ALL
57+
# taking effect.
3258
unset LANG
3359
unset LANGUAGE
34-
LC_ALL=C
60+
LC_ALL=en_US.utf8
3561
export LC_ALL
3662

3763
# Make sure umask is sane

0 commit comments

Comments
 (0)