diff --git a/Makefile.am b/Makefile.am index cf9ff94f4f..711f365504 100644 --- a/Makefile.am +++ b/Makefile.am @@ -69,7 +69,7 @@ NEWS: \ $(srcdir)/docs/news.xml \ >$@-tmp \ || { rm -f $@-tmp; exit 1; }; \ - $(PYTHON) $(srcdir)/docs/reformat-news.py $@-tmp >$@ \ + $(RUNUTF8) $(PYTHON) $(srcdir)/docs/reformat-news.py $@-tmp >$@ \ || { rm -f $@-tmp; exit 1; }; \ rm -f $@-tmp; \ fi diff --git a/configure.ac b/configure.ac index 286b9f7abe..af8cbcdfd8 100644 --- a/configure.ac +++ b/configure.ac @@ -708,6 +708,14 @@ AC_PATH_PROG([FLAKE8], [flake8]) if test -z "$FLAKE8"; then AC_MSG_WARN(['flake8' binary is required to check python code style]) fi + +dnl Python3 < 3.7 treats the C locale as 7-bit only. +dnl We must force env vars so it treats it as UTF-8 +dnl regardless of the user's locale. +RUNUTF8="LC_ALL= LANG=C LC_CTYPE=en_US.UTF-8" +AC_SUBST(RUNUTF8) + + AC_PATH_PROG([PERL], [perl]) if test -z "$PERL"; then AC_MSG_ERROR(['perl' binary is required to build libvirt]) diff --git a/docs/Makefile.am b/docs/Makefile.am index 7a5d3450fc..8b8074c3c0 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -319,7 +319,8 @@ $(APIBUILD_STAMP): $(srcdir)/apibuild.py \ $(top_srcdir)/src/util/virerror.c \ $(top_srcdir)/src/util/virevent.c \ $(top_srcdir)/src/util/virtypedparam.c - $(AM_V_GEN)srcdir=$(srcdir) builddir=$(builddir) $(PYTHON) $(APIBUILD) + $(AM_V_GEN)srcdir=$(srcdir) builddir=$(builddir) \ + $(RUNUTF8) $(PYTHON) $(APIBUILD) touch $@ diff --git a/src/esx/Makefile.inc.am b/src/esx/Makefile.inc.am index 2d55c6573c..3dab05d71c 100644 --- a/src/esx/Makefile.inc.am +++ b/src/esx/Makefile.inc.am @@ -63,8 +63,8 @@ $(ESX_DRIVER_GENERATED): $(ESX_GENERATED_STAMP) $(ESX_GENERATED_STAMP): $(srcdir)/esx/esx_vi_generator.input \ $(srcdir)/esx/esx_vi_generator.py - $(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) $(srcdir)/esx/esx_vi_generator.py \ - && touch $@ + $(AM_V_GEN)srcdir=$(srcdir) $(RUNUTF8) $(PYTHON) \ + $(srcdir)/esx/esx_vi_generator.py && touch $@ MAINTAINERCLEANFILES += $(ESX_DRIVER_GENERATED) $(ESX_GENERATED_STAMP) diff --git a/src/hyperv/Makefile.inc.am b/src/hyperv/Makefile.inc.am index 51be8bcacc..6728b39c90 100644 --- a/src/hyperv/Makefile.inc.am +++ b/src/hyperv/Makefile.inc.am @@ -41,7 +41,7 @@ $(HYPERV_DRIVER_GENERATED): $(HYPERV_GENERATED_STAMP) $(HYPERV_GENERATED_STAMP): $(srcdir)/hyperv/hyperv_wmi_generator.input \ $(srcdir)/hyperv/hyperv_wmi_generator.py - $(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) \ + $(AM_V_GEN)srcdir=$(srcdir) $(RUNUTF8) $(PYTHON) \ $(srcdir)/hyperv/hyperv_wmi_generator.py \ && touch $@ diff --git a/src/util/Makefile.inc.am b/src/util/Makefile.inc.am index 46866cf213..adb5e6d727 100644 --- a/src/util/Makefile.inc.am +++ b/src/util/Makefile.inc.am @@ -300,7 +300,7 @@ util/virkeycodetable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \ $(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycodetable_,,' \ -e 's,\.h,,'` && \ $(MKDIR_P) util/ && \ - $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ + $(RUNUTF8) $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ --lang stdc --varname virKeyCodeTable_$$NAME code-table \ $(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > $@-tmp && \ mv $@-tmp $@ || rm -f $@-tmp @@ -310,7 +310,7 @@ util/virkeynametable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \ $(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeynametable_,,' \ -e 's,\.h,,'` && \ $(MKDIR_P) util/ && \ - $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ + $(RUNUTF8) $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ --lang stdc --varname virKeyNameTable_$$NAME name-table \ $(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > $@-tmp && \ mv $@-tmp $@ || rm -f $@-tmp @@ -320,7 +320,7 @@ util/virkeycode-%.pod: $(srcdir)/keycodemapdb/data/keymaps.csv \ $(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycode-,,' \ -e 's,\.pod,,'` && \ $(MKDIR_P) util/ && \ - $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ + $(RUNUTF8) $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ --lang pod \ --varname "virkeycode-$$NAME - Key code values for $$NAME" \ code-docs \ @@ -332,7 +332,7 @@ util/virkeyname-%.pod: $(srcdir)/keycodemapdb/data/keymaps.csv \ $(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeyname-,,' \ -e 's,\.pod,,'` && \ $(MKDIR_P) util/ && \ - $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ + $(RUNUTF8) $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ --lang pod \ --varname "virkeyname-$$NAME - Key name values for $$NAME" \ name-docs \