Created on 2016-09-23 13:31 by Arfrever, last changed 2017-03-31 16:36 by dstufft. This issue is now closed.
When Estonian locale (e.g. et_EE.UTF-8) is set, then the following line in Makefile.pre.in does not match all required strings:
sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config
In Estonian locale:
[A-Z] does not match: T, U, V, W, X, Y
[a-z] does not match: t, u, v, w, x, y
https://en.wikipedia.org/wiki/Estonian_orthography
Run-time result without fix applied:
$ LC_ALL=C bash python-config --help
python-config: line 45: LDVERSION: command not found
python-config: line 49: VERSION: command not found
python-config: line 51: prefix: command not found
python-config: line 51: VERSION: command not found
Usage: python-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir
I attach patch (also fixing distclean target).
I get "500 Server Error" page when trying to write response in Rietveld, so I will write here... On 2016/09/23 16:00:58, storchaka wrote: > https://bugs.python.org/review/28258/diff/18650/Makefile.pre.in > File Makefile.pre.in (right): > > https://bugs.python.org/review/28258/diff/18650/Makefile.pre.in#newcode1633 > Makefile.pre.in:1633: LC_ALL=C; find $(srcdir)/[a-zA-Z]* '(' -name '*.fdc' -o > -name '*~' \ > Does it work with ";"? Yes. Expansion is performed here by shell (spawned by make) itself before arguments are passed to find. So LC_ALL=C must be set as a separate command. $ export LC_ALL=et_EE.UTF-8 $ mkdir -p /tmp/test/{a,t,z} $ find /tmp/test/[a-zA-Z]* /tmp/test/a /tmp/test/z $ LC_ALL=C find /tmp/test/[a-zA-Z]* /tmp/test/a /tmp/test/z $ LC_ALL=C; find /tmp/test/[a-zA-Z]* /tmp/test/a /tmp/test/t /tmp/test/z $
Thanks for your explanation, now I see this. The patch LGTM.
New changeset 6110997dd6e7 by Serhiy Storchaka in branch '3.5': Issue #28258: Fixed build with Estonian locale (python-config and distclean https://hg.python.org/cpython/rev/6110997dd6e7 New changeset 1b9e71f5de83 by Serhiy Storchaka in branch '3.6': Issue #28258: Fixed build with Estonian locale (python-config and distclean https://hg.python.org/cpython/rev/1b9e71f5de83 New changeset a2c5179bce01 by Serhiy Storchaka in branch 'default': Issue #28258: Fixed build with Estonian locale (python-config and distclean https://hg.python.org/cpython/rev/a2c5179bce01 New changeset f2247d1cb884 by Serhiy Storchaka in branch '2.7': Issue #28258: Fixed build with Estonian locale (distclean target in https://hg.python.org/cpython/rev/f2247d1cb884
"LC_ALL=C; find" are you sure for ";"?
This is the question that I asked Arfrever.
"Expansion is performed here by shell (spawned by make) itself before arguments are passed to find. So LC_ALL=C must be set as a separate command." Oh. I expected at least "export LANG" somewhere. IMHO it deserves a comment explaining the surprising ";". Does it work if it's written on two lines?
> Oh. I expected at least "export LANG" somewhere. IMHO it deserves a comment > explaining the surprising ";". I don't know if export is needed. I see the same behavior with and without export. > Does it work if it's written on two lines? No, it doesn't work.
New changeset 17f2b6b2e24c by Victor Stinner in branch '3.5': Issue #28258: Explain the LC_ALL change in a comment https://hg.python.org/cpython/rev/17f2b6b2e24c New changeset f256bd5b8418 by Victor Stinner in branch '2.7': Issue #28258: Explain the LC_ALL change in a comment https://hg.python.org/cpython/rev/f256bd5b8418
Thanks Victor!