[devel] U: Безусловный LC_ALL=C в /usr/lib/rpm/functions

Aleksey Avdeev solo на solin.spb.ru
Ср Фев 20 00:02:40 MSK 2013


19.02.2013 23:46, Aleksey Avdeev пишет:
> 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 пишет:
>>>>> привет!
>>>>>
>>>>> кто-нибудь может подсказать, что изменилось и как теперь с этим жить?
>>>>
>>>>   См.
>>>> <http://git.altlinux.org/people/ldv/packages/?p=rpm.git;a=commitdiff;h=279f487ca4461fc3cc29bc7eb9ea05a45abba4c1>.
>>
>> Я же ясно там написал: "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 <module>
>     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
> прибить гвоздями.

  Другой вариант: Изменить 096-bytecompile_python3.brp так, чтобы при
наличии переменной RPM_BUILD_PYTHON_LANG для работы python`а
выставлялась локальная локаль ($RPM_BUILD_PYTHON_LANG)... Но помоему это
ещё более криво.

...
>>
>> Надо убрать этот %_build_lang подальше, его включение ломает скрипты,
>> совсем недавно кто-то на это опять наступил.
> 
>   А я сейчас (как и real@ ранее) -- наступил на слом сборки, если локаль
> не UTF8... И как быть?

-- 

С уважением. Алексей.


----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 897 байтов
Описание: OpenPGP digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20130220/1b9aba28/attachment.bin>


Подробная информация о списке рассылки Devel