On 2022-12-06 13:18, Frank de Brabander via lists.openembedded.org wrote: > Get rid of the duplicate code and add extra check that the > locale en_US.UTF-8 is available on the system. This new helper > method is now located right above the method filter_environment() > which sets LC_ALL environment variable to 'en_US.UTF-8'. Nice: foo@2b7837225ffb:~/b/test$ bitbake -p coreutils Please make sure locale 'en_US.UTF-8' is available on your system Steve, It would be nice if you cherry-pick this back to langdale and kirkstone, it's a clean c-p. ../Randy > > [YOCTO #10165] > > Signed-off-by: Frank de Brabander > --- > bin/bitbake | 3 +-- > bin/bitbake-server | 5 +++-- > bin/bitbake-worker | 3 +-- > lib/bb/utils.py | 16 ++++++++++++++++ > 4 files changed, 21 insertions(+), 6 deletions(-) > > diff --git a/bin/bitbake b/bin/bitbake > index 7cbf88f4..f869eb48 100755 > --- a/bin/bitbake > +++ b/bin/bitbake > @@ -25,8 +25,7 @@ except RuntimeError as exc: > from bb import cookerdata > from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException > > -if sys.getfilesystemencoding() != "utf-8": > - sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.") > +bb.utils.check_system_locale() > > __version__ = "2.2.0" > > diff --git a/bin/bitbake-server b/bin/bitbake-server > index 825e9d56..454a3919 100755 > --- a/bin/bitbake-server > +++ b/bin/bitbake-server > @@ -12,8 +12,9 @@ warnings.simplefilter("default") > import logging > sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib')) > > -if sys.getfilesystemencoding() != "utf-8": > - sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.") > +import bb > + > +bb.utils.check_system_locale() > > # Users shouldn't be running this code directly > if len(sys.argv) != 11 or not sys.argv[1].startswith("decafbad"): diff --git a/bin/bitbake-worker b/bin/bitbake-worker index > 3799b170..3cacdb0c 100755 --- a/bin/bitbake-worker +++ > b/bin/bitbake-worker @@ -24,8 +24,7 @@ import subprocess from > multiprocessing import Lock from threading import Thread -if > sys.getfilesystemencoding() != "utf-8": > - sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.") > +bb.utils.check_system_locale() > > # Users shouldn't be running this code directly > if len(sys.argv) != 2 or not sys.argv[1].startswith("decafbad"): diff --git a/lib/bb/utils.py b/lib/bb/utils.py index > f4da3563..0df522b3 100644 --- a/lib/bb/utils.py +++ b/lib/bb/utils.py > @@ -13,6 +13,7 @@ import errno import logging import bb import bb.msg > +import locale import multiprocessing import fcntl import importlib @@ > -608,6 +609,21 @@ def preserved_envvars(): ] return v + > preserved_envvars_exported() +def check_system_locale(): + """Make sure the required system locale are available and configured""" > + default_locale = locale.getlocale(locale.LC_CTYPE) > + > + try: > + locale.setlocale(locale.LC_CTYPE, ("en_US", "UTF-8")) > + except: > + sys.exit("Please make sure locale 'en_US.UTF-8' is available on your system") > + else: > + locale.setlocale(locale.LC_CTYPE, default_locale) > + > + if sys.getfilesystemencoding() != "utf-8": > + sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\n" > + "Python can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.") > + > def filter_environment(good_vars): > """ > Create a pristine environment for bitbake. This will remove variables that > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#14139):https://lists.openembedded.org/g/bitbake-devel/message/14139 > Mute This Topic:https://lists.openembedded.org/mt/95499228/3616765 > Group Owner:bitbake-devel+owner@lists.openembedded.org > Unsubscribe:https://lists.openembedded.org/g/bitbake-devel/unsub [randy.macleod@windriver.com] > -=-=-=-=-=-=-=-=-=-=-=- > -- # Randy MacLeod # Wind River Linux