19.02.2013 23:25, Dmitry V. Levin пишет: > On Tue, Feb 19, 2013 at 06:02:00PM +0400, Aleksey Avdeev wrote: >> 19.02.2013 15:04, Aleksey Avdeev пишет: >>> 18.01.2013 15:41, REAL пишет: >>>> привет! >>>> >>>> кто-нибудь может подсказать, что изменилось и как теперь с этим жить? >>> >>> См. >>> . > > Я же ясно там написал: "A lot of code relies on C collation, C messages > and so on. Do not pretend it is expected to work with a non-C locale." > Скажите, пожалуйста, какая часть этого комментария недостаточно понятна? Этот комментарий понятен. Но не UTF8 локаль _гарантировано_ ломает байткомпиляцию pycairo (с чего всё и началось): Bytecompiling python3 modules in /usr/src/tmp/python3-module-pycairo-buildroot using /usr/bin/python3 Traceback (most recent call last): File "/usr/lib/rpm/python3.compileall.py", line 131, in exit_status = bool(main()) File "/usr/lib/rpm/python3.compileall.py", line 128, in main return compile_path(**dopt) File "/usr/lib/rpm/python3.compileall.py", line 93, in compile_path compile_all(join_prefix(prefix,item),[join_prefix(prefix,x) for x in exclude],deep,skip_x,clean,prefix) File "/usr/lib/rpm/python3.compileall.py", line 81, in compile_all compile_all(p,exclude,deep-1,skip_x,clean,prefix) File "/usr/lib/rpm/python3.compileall.py", line 81, in compile_all compile_all(p,exclude,deep-1,skip_x,clean,prefix) File "/usr/lib/rpm/python3.compileall.py", line 84, in compile_all if not (skip_x and executable(p)) : File "/usr/lib/rpm/python3.compileall.py", line 60, in executable line = open(file).readline() File "/usr/lib64/python3.2/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 14: ordinal not in range(128) Как быть с этим? Т. е. на данный момент ситуация выглядит так: 1. Локаль отличная от C зло, т. к. может взорвать некоторые скрипты. 2. У нас есть миниум 1 модуль, сборка которого взрывается, если локаль C прибить гвоздями. > >>> У нас сейчас в /usr/lib/rpm/functions выставляется безусловный >>> LC_ALL=C. Т. е. выставленное в спеке LC_ALL=en_US.UTF-8 не добирается до >>> потребителя (/usr/bin/python3) вызываемого в скрипте >>> /usr/lib/rpm/brp.d/096-bytecompile_python3.brp, т. к. перекрывается аж в >>> двух вызовах /usr/lib/rpm/functions (в /usr/lib/rpm/brp-alt и самом >>> /usr/lib/rpm/brp.d/096-bytecompile_python3.brp). >>> >>> Похоже, нужна ручка для запрета перекрыия правильного LC_ALL в >>> /usr/lib/rpm/functions. >> >> И такая ручка у нас есть (цитирую >> /usr/share/doc/rpm-4.0.4/README.ALT-ru_RU.UTF-8): >> >> Управление процессом сборки. >> ... >> %_build_lang: >> значение переменных LANG, LANGUAGE и LC_ALL; > > Надо убрать этот %_build_lang подальше, его включение ломает скрипты, > совсем недавно кто-то на это опять наступил. А я сейчас (как и real@ ранее) -- наступил на слом сборки, если локаль не UTF8... И как быть? -- С уважением. Алексей.