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"
 }
 

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to