Summary: | Gets wrong Requires from renamed imports | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Kuznetsov <vitty> |
Component: | rpm-build-python | Assignee: | Nobody's working on this, feel free to take it <nobody> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | darktemplar, george, gns, imz, ldv, mike, real.altlinux.org |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Vitaly Kuznetsov
2011-09-14 16:33:37 MSK
А в чём ошибка? Вполне логично, что появляется зависимость. Другое дело, что мейнтейнер должен позаботиться, чтобы python2.6(builtins) появился в репозитории. Или я что-то не так понял? Ошибка в том, что модуль builtins не нужен, механизмом переименования вместо него в приведённом мной куске кода грузится __builtin__ , никакой зависимости появляться не должно. Попробуйте выполнить мой код, никакого сообщения о несуществующем модуле builtins вы не получите. Данный приём штатно используется для написания кода, совместимого с python3, у нас же получаются нерезолвящиеся зависимости. Я думаю, что зависимость появляется из-за "import builtins". Чтобы компьютеру объяснить, что зависимость такая не нужна, надо либо снабдить rpm-build-python искуственным интеллектом (тут я пас), либо в пакете, где используется такой код, сделать соответствующий Provides: %py_provides builtins Искусственный интеллект не нужен, нужно смотреть те модули, которые реально импортируются, а не просто "import xyz". Раз уж в питоне есть механизм переопределения импортируемых модулей. (In reply to comment #3) > искуственным интеллектом (тут я пас), либо в пакете, где используется такой > код, сделать соответствующий Provides: > > %py_provides builtins ололо (In reply to comment #1) > Другое дело, что > мейнтейнер должен позаботиться, чтобы python2.6(builtins) появился в > репозитории. Или я что-то не так понял? ололошеньки (В ответ на комментарий №4) > Искусственный интеллект не нужен, нужно смотреть те модули, которые реально > импортируются, а не просто "import xyz". Раз уж в питоне есть механизм > переопределения импортируемых модулей. На синтаксическом уровне модификацию sys.modules отследить совсем непросто, мало ли, какое значение туда положат. А вот создать список таких переименований, необходимых для python3, и засунуть их в provides (в данном случае -- самому python), думаю, имеет смысл. |