[devel] [Ошибка 28762] Не цепляет зависимости

Aleksey Avdeev solo на altlinux.ru
Пт Апр 5 02:30:52 MSK 2013


04.04.2013 12:53, Paul Wolneykien пишет:
> 
>   Давай с этим прямо в devel на .

  OK.

> 
> 04.04.2013 12:38, bugzilla-daemon на altlinux.ru пишет:
>> https://bugzilla.altlinux.org/28762
>> Компонент: Sisyphus/rpm-build-python3
>>
>> --- #3 solo <solo на altlinux.org> 2013-04-04 12:37:59 ---
>> (В ответ на комментарий №2)
>> ...
>>> По идее, %_python3_path не нужен, python3.req.py должен обрабатывать все, что к
>>> нему приехало.  Эх, автора бы спросить...
>>
>>    При отладке картина вообще странная: После python3.req.files, python3.req.py
>> (через python3.req) передаётся только один файл (только строка
>> "/usr/src/tmp/maliit-framework-buildroot/usr/bin/maliit-exampleapp-settings-python3.py").
>> Но в переменную files (куда должен попадать весь in, если я правельно понял
>> код) данная строка не попадает!

  С этим разобрался (очепятка при отладке).

>>
>>    Содержимое files, формируется так:
>>
>> files = sys.argv[1:] or [ x.strip() for x in sys.stdin.readlines() ]

  Здесь всё нормально. А дальше, фильтр:

>> files = [p for p in files if is_python3(os.path.abspath(p))]
                             ^^^^^^^^^^^^^

  Это в python3.req.py. В python.req.py данный кусок несколько отличается:

files = [p for p in files if not is_python3(os.path.abspath(p))]
                          ^^^^^^^^^^^^^^^^^

  Причём реализации функции is_python3() идентичны.

  Т. е. python.req.py, используя парадигму "обрабатываем всё, коме того
что в каталогах python3", гарантированно обрабатывает более широкое множество
файлов, чем python3.req.py, использующий "обрабатываем только то,
что в каталогах python3". Выглядит это как ошибка...

  Предлагаю исправить следующим образом:

1. Вообще выкинуть функцию is_python3 из python3.req.py: с вырезанием файлов
расположенных в /usr/lib*/python2* сейчас справляется python3.req.files (см.
<http://git.altlinux.org/people/solo/packages/rpm-build-python3.git?p=rpm-build-python3.git;
a=commitdiff;h=804f000c2a4b300a9087079c7c0fe9ca508c95e5>).

2. Несколько ужесточить фильтр в python3.req.files -- добавить явное вырезание
всех файлов, для которых file возвращает python script text executable (кроме
файлов расположенных в /usr/lib*/python3*, %_python3_path и %_python3_compile_include,
см. <http://git.altlinux.org/people/solo/packages/rpm-build-python3.git?p=rpm-build-python3.git;
a=commitdiff;h=db2f2314cea7101b39e49cc3ae10c5c79268c971>).

-- 

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


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


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