On Mon, Jun 08, 2009 at 07:33:54PM +0400, Alexey Tourbin wrote: > On Mon, Jun 08, 2009 at 11:19:07PM +0800, Terechkov Evgenii wrote: > > > В предположении, что каждый файл может предоставлять только один модуль > > > (то есть в предположении, что PIL/Image.py должен дать только одну > > > Provides-зависимость в пространстве питоновских модулей) нам нужно > > > сформировать Provides. При формировании Provides путь к файлу > > > разбивается на две компоненты: стандартный каталог и оставшийся путь > > > к модулю. Причем стандартный каталог выбирается наиболее длинным, > > > поскольку, например, site-packages является подкаталогом в стандартном > > > каталоге. > > > > > > Так вот, PIL.pth задает в качестве стандартного каталога подкаталог PIL, > > > и все Provides-зависимости отсчитываются от подкаталога PIL. То есть > > > будет что PIL/Image.py предоставляет python2.5(Image). Новая версия > > > python.prov.py работает правильно, насколько что по смыслу можно > > > объяснить как она должна работать. > > > > Спасибо за объяснение. Виноват - обратил внимание на отсутствие > > python2.5(PIL*), но не заметил странных python2.5(Image) > > Надо подумать, как должен работать python.prov.py. :) Я стал склоняться > к мысли, что действительно имеется регрессия (ухудшение). Но это тогда > значит, что каждый питоновский модуль может предоставлять более одной > зависимости Provides! То есть его можно загрузить как Image и как > PIL.Image, и эти формы более-менее равноправны. В сизиф собрался rpm-build-python 0.34.1. http://git.altlinux.org/people/at/packages/rpm-build-python.git * Sat Jun 13 2009 Alexey Tourbin 0.34.1-alt2 - rpm-build-python-tools: Disabled python dependencies, scheduled for removal. * Sat Jun 13 2009 Alexey Tourbin 0.34.1-alt1 - python.prov.py: Re-added limited support for multpile provides - e.g. PIL/Image.py provides both python2.5(PIL.Image) due to PIL/__init__.py and python2.5(Image) due to PIL.pth. - python.prov.py: Do not provide module names with "-" dashes. > В существующем (ранее собранном) пакете как раз предоставляются две эти > зависимости. > > $ rpm -qp --provides python-module-imaging-1.1.6-alt2.x86_64.rpm |grep -w Image > python2.5(Image) > python2.5(PIL.Image) > $