We received too many invalid bugs caused by unsupported locales. python_pkg_setup() needs to check locale and print error (using eerror(), without die()), when unsupported locale has been detected.
-- Arfrever Frehtes Taifersar Arahesis
--- python.eclass
+++ python.eclass
@@ -355,6 +355,8 @@
# Check if phase is pkg_setup().
[[ "${EBUILD_PHASE}" != "setup" ]] && die "${FUNCNAME}() can be used only in pkg_setup() phase"
+ local locale
+
if [[ "$#" -ne 0 ]]; then
die "${FUNCNAME}() does not accept arguments"
fi
@@ -407,6 +409,16 @@
unset -f python_pkg_setup_check_USE_flags
fi
+ locale="$(python -c 'import os; print(os.environ.get("LC_ALL", os.environ.get("LC_CTYPE", os.environ.get("LANG", "POSIX"))))')"
+ if [[ "${locale}" != *.UTF-8 ]]; then
+ eerror
+ eerror "Currently used locale '${locale}' is unsupported and can cause build-time or run-time"
+ eerror "problems (usually UnicodeDecodeErrors or UnicodeEncodeErrors). Bugs caused by this locale"
+ eerror "will be closed as invalid. It is recommended to use a UTF-8 locale to avoid problems."
+ eerror "See http://www.gentoo.org/doc/en/utf-8.xml for information on how to fix locale."
+ eerror
+ fi
+
PYTHON_PKG_SETUP_EXECUTED="1"
}
signature.asc
Description: This is a digitally signed message part.
