From: Alexey Tourbin <at@altlinux.ru> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] rpm-build-python-0.34-alt1 regression Date: Mon, 8 Jun 2009 18:02:40 +0400 Message-ID: <20090608140240.GC22520@altlinux.org> (raw) In-Reply-To: <20090608104136.GA21548@evg.krastel.ru> [-- Attachment #1: Type: text/plain, Size: 3447 bytes --] On Mon, Jun 08, 2009 at 06:41:36PM +0800, Terechkov Evgenii wrote: > > > > Пересборка python-module-imaging-1.1.6-alt3 в среде с > > > > rpm-build-python-0.33.2-alt1 даёт Provides: python2.5(PIL), > > > > python2.5(PIL.*) в подпакете python-module-imaging. Я думаю, это > > > > регрессия в rpm-build-python. > > Я посмотрел эту проблему, но пока проблемы особо не понял. > > $ hsh-install 'python2.5(PIL)' > > <13>Jun 8 07:25:23 rpmi: python-module-imaging-devel-1.1.6-alt2 installed > > $ hsh-run -- python -c 'import PIL' > > Traceback (most recent call last): > > File "<string>", line 1, in <module> > > ImportError: No module named PIL > > $ > > Пространство питоновских зависимостей -- это имена модулей, которые > > могут быть импортированы с помощью инструкции import. > > Другими словами, если пакет предоставляет зависимость 'python(foo)', > > то это должно значить, что будет работать команда python -c 'import foo'. > > Это ошибка в пакете python-module-imaging: файл PIL.pth упакован в > подпакет devel. Эту ошибку swi@ пытается починить сборкой alt3. Но > натыкается на то, что пакет, содержащий и файл PIL.pth и > соответствующую директорию site-packages/PIL/ (т.е. где python -c > "import PIL" должно уже работать) таковую зависимость не предоставяет. > > И это уже вторая ошибка. Я так понимаю, что сборка alt2 python2.5(PIL) > предоставляла т.к. была собрана в среде с > rpm-build-python-0.33.2-alt1. Для проверки я пересобрал > python-module-imaging-1.1.6-alt3 в среде с > rpm-build-python-0.33.2-alt1 (вместо 0.34... в Сизифе), в результате > чего python2.5(PIL) стал провайдится пакетом python-module-imaging. > > Судя по changelog-у 0.33.2->0.34, была пройзведена переписка кода > python.prov.py, так что я предполагаю что в результате этого действия > Provides: теперь корректно выставлены не у всех питон-пакетов в Сизифе > (точнее у некоторых, собранных с rpm-build-python-0.34). Код изменения > я пока не смотрел. Уважаемые мужички! Давайте рассмотрим конструкцию по делу. У нас есть несколько файлов: /usr/lib64/python2.5/site-packages/PIL.pth в нём написано "PIL" и допустим /usr/lib64/python2.5/site-packages/PIL/__init__.py /usr/lib64/python2.5/site-packages/PIL/Image.py В предположении, что каждый файл может предоставлять только один модуль (то есть в предположении, что PIL/Image.py должен дать только одну Provides-зависимость в пространстве питоновских модулей) нам нужно сформировать Provides. При формировании Provides путь к файлу разбивается на две компоненты: стандартный каталог и оставшийся путь к модулю. Причем стандартный каталог выбирается наиболее длинным, поскольку, например, site-packages является подкаталогом в стандартном каталоге. Так вот, PIL.pth задает в качестве стандартного каталога подкаталог PIL, и все Provides-зависимости отсчитываются от подкаталога PIL. То есть будет что PIL/Image.py предоставляет python2.5(Image). Новая версия python.prov.py работает правильно, насколько что по смыслу можно объяснить как она должна работать. Возможно, файл PIL.pth вообще не следует упаковывать. Более того, его нужно удалить в %buildroot. Тогда образуются Provides вида python2.5(PIL*). Примите и проч. > Кроме того, хотелось бы, чтобы при сборке пакетов проверялось, реально > ли пакет, содержащий *.pth-файл, может обеспечить python -c "import > foo", чтобы застраховаться от подобный ошибок упаковки. [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2009-06-08 14:02 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-06-06 14:17 [devel] python module provides Alexey Morsov 2009-06-06 16:18 ` Dmitry V. Levin 2009-06-07 10:22 ` Alexey Morsov 2009-06-07 10:52 ` Dmitry V. Levin 2009-06-07 12:24 ` Alexey Morsov 2009-06-07 12:59 ` Dmitry V. Levin 2009-06-07 15:25 ` Terechkov Evgenii 2009-06-07 16:41 ` [devel] rpm-build-python-0.34-alt1 regression Dmitry V. Levin 2009-06-08 7:34 ` Alexey Tourbin 2009-06-08 10:41 ` Terechkov Evgenii 2009-06-08 14:02 ` Alexey Tourbin [this message] 2009-06-08 15:19 ` Terechkov Evgenii 2009-06-08 15:33 ` Alexey Tourbin 2009-06-08 15:36 ` Mikhail Gusarov 2009-06-08 15:56 ` Terechkov Evgenii 2009-06-08 16:07 ` Mikhail Gusarov 2009-06-08 16:08 ` Alexey Tourbin 2009-06-13 3:31 ` Alexey Tourbin 2009-06-08 15:46 ` Ivan Fedorov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20090608140240.GC22520@altlinux.org \ --to=at@altlinux.ru \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git