[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