[devel] I: [python3] python.req: ERROR

Aleksey Avdeev solo на solin.spb.ru
Пт Фев 15 16:23:04 MSK 2013


15.02.2013 15:54, Paul Wolneykien пишет:
> 15.02.2013 15:43, Aleksey Avdeev пишет:
>> 15.02.2013 12:53, Paul Wolneykien пишет:
>>> 15.02.2013 06:37, Dmitry V. Levin пишет:
>>>> On Fri, Feb 15, 2013 at 06:12:13AM +0400, Aleksey Avdeev wrote:
>>>>> ...
>>>>>>   Здесь ничего сказать не могу: ещё не лазил на столько глубоко в эту
>>>>>> кухню (если полезу -- гарантированно сорву заданные сроки).
>>>> На мой взгляд, не отведав этой кухни, в пасть питону лучше не лезть.
>>>
>>>   Лёша, что именно за кухня? Работа prov и req парсеров в RPM? Что-то
>>> специфичное для Питона? Если перовое, то на altlinux.org или около него
>>> должна быть какая-то документация, рекомендации по сборке пакетов. А
>>> если второе, то лучше спрашивай напрямую у питоноводов. У того же peet@
>>> к примеру, -- полагаю, что он лазал питону не только в пасть...
>>
>>   Работа prov и req парсеров в RPM применительно к python*. Проблема ещё
>> в том, что я не знаю как запретить rpm`у удалять временные
>> файлы/каталоги, созданные при сборке пакета (что упростит анализ работы
>> парсеров).
>>
>>   Беглый забег по скриптам rpm-build-python{,3} что:
>>
>> 1. python.{prov,req}.files спокойно пропускает через себя модули и
>> бинарники относящиеся к python3 (=> они обрабатываются через
>> /usr/bin/python). Фильтр отстреливает только скрипты с _явным_ указанием
>> что это python3 (признаком "#! /usr/bin/python3"), но только в том
>> случаи, если в системе установлен file >= 4.26-alt8 (file < 4.26-alt8
>> выделять скрипты python3 не умеет).
>>
>> 2. В python3.{prov,req}.files ситуация аналогична: он тоже пропускает
>> файлы в расположенные в */python2.* (т. е. заведомо не относящиеся к
>> python3 => обрабатывает их через /usr/bin/python3).
>>
>> 3. В python3.req жёстко прошито использование /usr/bin/python3
>> установленного в сборочной системе. => свежесобранный python3 для поиска
>> зависимостей не используется. (В отличии от python.req, где
>> использованный python можно задать через $RPM_PYTHON
>>
>>   Суммируя:
>>
>> * Из-за пп. 1 и 2 ситуация когда при поиске зависимостей скрипт
>> обрабатывается не тем python`ом
> 
>   Э… Это из-за старого file? Так его просто обновить нужно.

  Для сборки под Сизиф не критично -- там hasher новый file вытягивает.
Это на t6/p6 рвануть может: python3 там есть, в отличии от
поддерживающего его file.

> 
>> (/usr/bin/python обрабатывает содержимое
>> */python3.*, а /usr/bin/python3 -- содержимое */python2.*) у нас
>> штатная. И мне непонятно почему она каждый раз не взрывается (возможно
>> нас защищает порядок вызова парсеров).
>>
>> * П. 3 ситуацию тоже похоже портит,
> 
>   Т.е. python.req использует свежесобранный python2.x, а python3.req —
> системный старый?

  Про python2.x не знаю (детально не разбирал его спек и используемые
макросы), но что ручка для этого в python.req есть -- факт. А в т. к. в
python3.req ручка для данной цели вообще отсутсвует, то он гарантировано
не может использовать не системный python3 => использует системный (т.
е. старый).

> 
> 15.02.2013 05:42, Dmitry V. Levin пишет:
>> При сборке питона скрипты питон.{req,prov} должны исполняться
>> свежесобранным питоном.  Насколько я помню, так всегда было,
>> и вряд ли стоит менять полезную традицию.
> 
>   А кто автор python3.req? Может быть просто ошибка там?

  Я ещё не смотрел историю rpm-build-python3. (Полезу туда после серии
экспериментов.)

> 
>> вынуждая смотреть в сторону bootstrap`а.
> 
>   А как собиралась текущая версия python3? Посмотри по тегам в
> /gears/p/python3.git. Если там был bootstrap, то видимо его и нужно
> использовать.

  При запаковывании python3-3.2.2-alt1 он был (т. к. это первая версия
python3 в Сизифе). python3-3.2.2-alt2 похоже его завершает, в
зависимостях появился rpm-build-python3 и пересборка с ним отмечена в
%changelog`е:

 Wed Dec 21 2011 Vitaly Kuznetsov <vitty на altlinux.ru> 3.2.2-alt2
- rebuild with rpm-build-python3
- split up, rename subpackages

Обновление до python3-3.2.3-alt1 (3.2.2 -> 3.2.3) прошло без
bootstrap`а, но там не менялись %pynameabi (python32mu) с %pylibdir
(%_libdir/python32) . Сейчас же я провожу обновление с 3.2.x на 3.3.x
(3.2.3 -> 3.3.0) и у меня меняются:

%pynameabi -- python32mu -> python33m

%pylibdir -- %_libdir/python32 -> %_libdir/python33

-- 

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


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


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