Debian patches glibc to add a special C.UTF-8 locale, which is not available on most other distros. For the meson build to work on other distros like ArchLinux, let's grep the output of locale -a and try to find C.UTF-8, en_US.UTF-8 or an en_* UTF-8 locale. If none can be found, fall back to any UTF-8 locale and print a warning.
Signed-off-by: Clemens Gruber <clemens.gru...@pqgruber.com> --- Changes since v1: - Followed Michaels recommendations to prefer en_US and en_* locales and only fall back to any UTF-8 locale as a last resort - Added "-m 1" to all grep invocations to limit the number of matches scripts/lib/ptxd_make_world_common.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/scripts/lib/ptxd_make_world_common.sh b/scripts/lib/ptxd_make_world_common.sh index 90f1c70b3..85471ce22 100644 --- a/scripts/lib/ptxd_make_world_common.sh +++ b/scripts/lib/ptxd_make_world_common.sh @@ -315,7 +315,19 @@ ptxd_make_world_init() { pkg_conf_opt="${pkg_conf_opt:-${!conf_opt_ptr}}" pkg_conf_env="PTXDIST_ICECC= ${pkg_conf_env}" - pkg_env="${pkg_env} LC_ALL='C.UTF-8'" + + # Try to find a suitable UTF-8 locale on all distros + local c_locale + if c_locale=$(locale -a | grep -i -m 1 "^C\.utf[-]\?8$") || \ + c_locale=$(locale -a | grep -i -m 1 "^en_US\.utf[-]\?8$") || \ + c_locale=$(locale -a | grep -i -m 1 "^en_.*\.utf[-]\?8$"); then + pkg_env="${pkg_env} LC_ALL='${c_locale}'" + else + ptxd_warning "Failed to find a good UTF-8 locale for meson." + pkg_env="${pkg_env} LC_ALL='$(locale -a | grep -i -m 1 "\.utf[-]\?8")'" + fi + unset c_locale + if [ "${PTXDIST_VERBOSE}" = "1" ]; then pkg_make_opt="-v ${pkg_make_opt}" pkg_install_opt="-v ${pkg_install_opt}" -- 2.15.1 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de