ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] python module provides
@ 2009-06-06 14:17 Alexey Morsov
  2009-06-06 16:18 ` Dmitry V. Levin
  0 siblings, 1 reply; 19+ messages in thread
From: Alexey Morsov @ 2009-06-06 14:17 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 650 bytes --]

Приветствую,

а как можно сказать гирару что вот "этот пакет провайдит вот такой модуль
теперь"?

Я тут просто пересобрал PIL по багу (вынес .pth из -devel и внес в
основной) но гирар не пропустил по причине new unmets.


-- 
WBR,Алексей Морсов
программист ЗАО "ИК "Риком-Траст"
Jabber: samurai@www.fondmarket.ru
ALT Linux Team Member

<Voins> посади дебианщика за alt так он сразу локали сломает! :)))

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] python module provides
  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
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2009-06-06 16:18 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 522 bytes --]

On Sat, Jun 06, 2009 at 06:17:10PM +0400, Alexey Morsov wrote:
> а как можно сказать гирару что вот "этот пакет провайдит вот такой модуль
> теперь"?

Нет, это неправильная постановка задачи: если вам удастся обмануть
сборочную систему, и кривой пакет попадёт в Сизиф, то он просто сломает
пакеты, которые на него завязаны.

> Я тут просто пересобрал PIL по багу (вынес .pth из -devel и внес в
> основной) но гирар не пропустил по причине new unmets.

Значит, вы что-то не то или не так делаете.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] python module provides
  2009-06-06 16:18 ` Dmitry V. Levin
@ 2009-06-07 10:22   ` Alexey Morsov
  2009-06-07 10:52     ` Dmitry V. Levin
  0 siblings, 1 reply; 19+ messages in thread
From: Alexey Morsov @ 2009-06-07 10:22 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 2621 bytes --]

On Sat, Jun 06, 2009 at 08:18:15PM +0400, Dmitry V. Levin wrote:
> Нет, это неправильная постановка задачи: если вам удастся обмануть
> сборочную систему, и кривой пакет попадёт в Сизиф, то он просто сломает
> пакеты, которые на него завязаны.
Возможно.

> 
> > Я тут просто пересобрал PIL по багу (вынес .pth из -devel и внес в
> > основной) но гирар не пропустил по причине new unmets.
> 
> Значит, вы что-то не то или не так делаете.
Ну по сути. Сейчас python-module-imaging-devel содержит файл PIL.pth.
Из-за этого допустим при инсталяции uniconverter тянется именно -devel а
не сам пакет.

тут https://bugzilla.altlinux.org/show_bug.cgi?id=18529 предложено
перенести PIL.pth в сам пакет исключив его из -devel.

спек можно видеть в моем гите.

Собственно как я представляю ситуацию и то почему гирар меня отлупил по
анметам: в некоторых пакетах (бинарных) есть (автоматическая?) зависимость на того кто предоставляет python(PIL). До сего момента выходило что его предоставлял -devel (поскольку в нем PIL.pth).
Т.е. либо в тех пакетах надо напрямую указывать что они требуют именно
python-module-imaging (что наверное не очень сейчас правильно), либо
каким-то образом указать что теперь python-module-imaging (не -devel)
предоставялет то самый python(PIL). 

На моей локальной машине теперь при apt-get install uniconverter тянется
именно python-module-imaging, а не девел, как до пересборки.

-- 
WBR,Алексей Морсов
программист ЗАО "ИК "Риком-Траст"
Jabber: samurai@www.fondmarket.ru
ALT Linux Team Member

Я опять изобрел велосипед. [...] Но данный конкретные велосипед работает
очень хорошо, гораздо лучше предыдущих.
		-- at in devel@

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] python module provides
  2009-06-07 10:22   ` Alexey Morsov
@ 2009-06-07 10:52     ` Dmitry V. Levin
  2009-06-07 12:24       ` Alexey Morsov
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2009-06-07 10:52 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 880 bytes --]

On Sun, Jun 07, 2009 at 02:22:25PM +0400, Alexey Morsov wrote:
> On Sat, Jun 06, 2009 at 08:18:15PM +0400, Dmitry V. Levin wrote:
[...]
> > > Я тут просто пересобрал PIL по багу (вынес .pth из -devel и внес в
> > > основной) но гирар не пропустил по причине new unmets.
> > 
> > Значит, вы что-то не то или не так делаете.
> Ну по сути. Сейчас python-module-imaging-devel содержит файл PIL.pth.
> Из-за этого допустим при инсталяции uniconverter тянется именно -devel а
> не сам пакет.
> 
> тут https://bugzilla.altlinux.org/show_bug.cgi?id=18529 предложено
> перенести PIL.pth в сам пакет исключив его из -devel.
> 
> спек можно видеть в моем гите.

Если просто пересобрать нынешний python-module-imaging-1.1.6-alt2.src.rpm
в текущей среде, то полученный бинарный python-module-imaging теряет
python2.5(PIL) и python2.5(PIL.*) из своих Provides.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] python module provides
  2009-06-07 10:52     ` Dmitry V. Levin
@ 2009-06-07 12:24       ` Alexey Morsov
  2009-06-07 12:59         ` Dmitry V. Levin
  0 siblings, 1 reply; 19+ messages in thread
From: Alexey Morsov @ 2009-06-07 12:24 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 890 bytes --]

On Sun, Jun 07, 2009 at 02:52:40PM +0400, Dmitry V. Levin wrote:

> Если просто пересобрать нынешний python-module-imaging-1.1.6-alt2.src.rpm
> в текущей среде, то полученный бинарный python-module-imaging теряет
> python2.5(PIL) и python2.5(PIL.*) из своих Provides.

Ну... таки баг и таки не просто так alt3 ?

-- 
WBR,Алексей Морсов
программист ЗАО "ИК "Риком-Траст"
Jabber: samurai@www.fondmarket.ru
ALT Linux Team Member

> Как всем этим воспользоваться?
В каких смыслах? Можно на лобовуху в машине повесить, можно в соседа
метнуть. Можно в сидюк вставить и с него загрузиться...
		-- vyt in community@

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] python module provides
  2009-06-07 12:24       ` Alexey Morsov
@ 2009-06-07 12:59         ` Dmitry V. Levin
  2009-06-07 15:25           ` Terechkov Evgenii
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2009-06-07 12:59 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 482 bytes --]

On Sun, Jun 07, 2009 at 04:24:30PM +0400, Alexey Morsov wrote:
> On Sun, Jun 07, 2009 at 02:52:40PM +0400, Dmitry V. Levin wrote:
> 
> > Если просто пересобрать нынешний python-module-imaging-1.1.6-alt2.src.rpm
> > в текущей среде, то полученный бинарный python-module-imaging теряет
> > python2.5(PIL) и python2.5(PIL.*) из своих Provides.
> 
> Ну... таки баг и таки не просто так alt3 ?

В alt3 ситуация аналогичная: нет python2.5(PIL) и python2.5(PIL.*).


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] python module provides
  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
  0 siblings, 1 reply; 19+ messages in thread
From: Terechkov Evgenii @ 2009-06-07 15:25 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 906 bytes --]

07.06.2009 Dmitry V. Levin писал:

> > > Если просто пересобрать нынешний python-module-imaging-1.1.6-alt2.src.rpm
> > > в текущей среде, то полученный бинарный python-module-imaging теряет
> > > python2.5(PIL) и python2.5(PIL.*) из своих Provides.
> > Ну... таки баг и таки не просто так alt3 ?
> В alt3 ситуация аналогичная: нет python2.5(PIL) и python2.5(PIL.*).

Судя по коммитам, переход alt2 -> alt3 сделан корректно, перенесением
файла PIL.pth из одного подпакета в другой.

Пересборка 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.

-- 
                                                С уважением, Терешков
                                                Евгений, ALT Linux
                                                Team

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-07 15:25           ` Terechkov Evgenii
@ 2009-06-07 16:41             ` Dmitry V. Levin
  2009-06-08  7:34               ` Alexey Tourbin
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry V. Levin @ 2009-06-07 16:41 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 855 bytes --]

On Sun, Jun 07, 2009 at 11:25:24PM +0800, Terechkov Evgenii wrote:
> 07.06.2009 Dmitry V. Levin писал:
> 
> > > > Если просто пересобрать нынешний python-module-imaging-1.1.6-alt2.src.rpm
> > > > в текущей среде, то полученный бинарный python-module-imaging теряет
> > > > python2.5(PIL) и python2.5(PIL.*) из своих Provides.
> > > Ну... таки баг и таки не просто так alt3 ?
> > В alt3 ситуация аналогичная: нет python2.5(PIL) и python2.5(PIL.*).
> 
> Судя по коммитам, переход alt2 -> alt3 сделан корректно, перенесением
> файла PIL.pth из одного подпакета в другой.

Да, вполне.

> Пересборка 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.

Да, вполне возможно.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  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
  0 siblings, 1 reply; 19+ messages in thread
From: Alexey Tourbin @ 2009-06-08  7:34 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1563 bytes --]

On Sun, Jun 07, 2009 at 08:41:53PM +0400, Dmitry V. Levin wrote:
> On Sun, Jun 07, 2009 at 11:25:24PM +0800, Terechkov Evgenii wrote:
> > 07.06.2009 Dmitry V. Levin писал:
> > 
> > > > > Если просто пересобрать нынешний python-module-imaging-1.1.6-alt2.src.rpm
> > > > > в текущей среде, то полученный бинарный python-module-imaging теряет
> > > > > python2.5(PIL) и python2.5(PIL.*) из своих Provides.
> > > > Ну... таки баг и таки не просто так alt3 ?
> > > В alt3 ситуация аналогичная: нет python2.5(PIL) и python2.5(PIL.*).
> > 
> > Судя по коммитам, переход alt2 -> alt3 сделан корректно, перенесением
> > файла PIL.pth из одного подпакета в другой.
> 
> Да, вполне.
> 
> > Пересборка 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'.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08  7:34               ` Alexey Tourbin
@ 2009-06-08 10:41                 ` Terechkov Evgenii
  2009-06-08 14:02                   ` Alexey Tourbin
  0 siblings, 1 reply; 19+ messages in thread
From: Terechkov Evgenii @ 2009-06-08 10:41 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2792 bytes --]

08.06.2009 Alexey Tourbin писал:

> > > > > > Если просто пересобрать нынешний python-module-imaging-1.1.6-alt2.src.rpm
> > > > > > в текущей среде, то полученный бинарный python-module-imaging теряет
> > > > > > python2.5(PIL) и python2.5(PIL.*) из своих Provides.
> > > > > Ну... таки баг и таки не просто так alt3 ?
> > > > В alt3 ситуация аналогичная: нет python2.5(PIL) и python2.5(PIL.*).
> > > Судя по коммитам, переход alt2 -> alt3 сделан корректно, перенесением
> > > файла PIL.pth из одного подпакета в другой.
> > Да, вполне.
> > > Пересборка 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). Код изменения
я пока не смотрел.

Кроме того, хотелось бы, чтобы при сборке пакетов проверялось, реально
ли пакет, содержащий *.pth-файл, может обеспечить python -c "import
foo", чтобы застраховаться от подобный ошибок упаковки.

-- 
                                                С уважением, Терешков
                                                Евгений, ALT Linux
                                                Team

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08 10:41                 ` Terechkov Evgenii
@ 2009-06-08 14:02                   ` Alexey Tourbin
  2009-06-08 15:19                     ` Terechkov Evgenii
  2009-06-08 15:46                     ` Ivan Fedorov
  0 siblings, 2 replies; 19+ messages in thread
From: Alexey Tourbin @ 2009-06-08 14:02 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- 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 --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08 14:02                   ` Alexey Tourbin
@ 2009-06-08 15:19                     ` Terechkov Evgenii
  2009-06-08 15:33                       ` Alexey Tourbin
  2009-06-08 15:46                     ` Ivan Fedorov
  1 sibling, 1 reply; 19+ messages in thread
From: Terechkov Evgenii @ 2009-06-08 15:19 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1790 bytes --]

08.06.2009 Alexey Tourbin писал:

> Давайте рассмотрим конструкцию по делу.
> 
> У нас есть несколько файлов:
> /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 работает правильно, насколько что по смыслу можно
> объяснить как она должна работать.

Спасибо за объяснение. Виноват - обратил внимание на отсутствие
python2.5(PIL*), но не заметил странных python2.5(Image)

> Возможно, файл PIL.pth вообще не следует упаковывать.  Более того, его
> нужно удалить в %buildroot.  Тогда образуются Provides вида python2.5(PIL*).

Я попробовал пересобрать пакет без этого файла (в т.ч. и в %buildroot)
- Provides остались в том же виде - python2.5(Image). Видимо надо
действовать как-то ещё.

-- 
                                                С уважением, Терешков
                                                Евгений, ALT Linux
                                                Team

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08 15:19                     ` Terechkov Evgenii
@ 2009-06-08 15:33                       ` Alexey Tourbin
  2009-06-08 15:36                         ` Mikhail Gusarov
  2009-06-13  3:31                         ` Alexey Tourbin
  0 siblings, 2 replies; 19+ messages in thread
From: Alexey Tourbin @ 2009-06-08 15:33 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1993 bytes --]

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 -qp --provides python-module-imaging-1.1.6-alt2.x86_64.rpm |grep -w Image
python2.5(Image)  
python2.5(PIL.Image)  
$

> > Возможно, файл PIL.pth вообще не следует упаковывать.  Более того, его
> > нужно удалить в %buildroot.  Тогда образуются Provides вида python2.5(PIL*).
> 
> Я попробовал пересобрать пакет без этого файла (в т.ч. и в %buildroot)
> - Provides остались в том же виде - python2.5(Image). Видимо надо
> действовать как-то ещё.

Видимо надо как-то действовать!

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08 15:33                       ` Alexey Tourbin
@ 2009-06-08 15:36                         ` Mikhail Gusarov
  2009-06-08 15:56                           ` Terechkov Evgenii
  2009-06-13  3:31                         ` Alexey Tourbin
  1 sibling, 1 reply; 19+ messages in thread
From: Mikhail Gusarov @ 2009-06-08 15:36 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 850 bytes --]


Twas brillig at 19:33:54 08.06.2009 UTC+04 when at@altlinux.ru did gyre and gimble:

 AT> Но это тогда значит, что каждый питоновский модуль может
 AT> предоставлять более одной зависимости Provides!  То есть его можно
 AT> загрузить как Image и как PIL.Image, и эти формы более-менее
 AT> равноправны.

Так и есть.

[dottedmag@vertex:~]% python
Python 2.5.4 (r254:67916, Feb 18 2009, 03:00:47) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Image
>>> Image.__file__
'/usr/lib/python2.5/site-packages/PIL/Image.pyc'
>>> import PIL.Image
>>> PIL.Image.__file__
'/usr/lib/python2.5/site-packages/PIL/Image.pyc'
>>> 

-- 

[-- Attachment #2: Type: application/pgp-signature, Size: 834 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08 14:02                   ` Alexey Tourbin
  2009-06-08 15:19                     ` Terechkov Evgenii
@ 2009-06-08 15:46                     ` Ivan Fedorov
  1 sibling, 0 replies; 19+ messages in thread
From: Ivan Fedorov @ 2009-06-08 15:46 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2506 bytes --]

Alexey Tourbin <at-u2l5PoMzF/Uox3rIn2DAYQ@public.gmane.org> writes:

> Уважаемые мужички!
> Давайте рассмотрим конструкцию по делу.
>
> У нас есть несколько файлов:
> /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*).
>
> Примите и проч.

В данном случае, PIL вообще очень странная вещь. Они зачем-то
предоставлют и pth и __init__.py. Хотя если подумать, то вещи эти
вобщем-то противоположны.

Но из-за этого некоторые проекты используют PIL по разному. :(

[-- Attachment #2: Type: application/pgp-signature, Size: 196 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  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
  0 siblings, 2 replies; 19+ messages in thread
From: Terechkov Evgenii @ 2009-06-08 15:56 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1033 bytes --]

08.06.2009 Mikhail Gusarov писал:

>  AT> Но это тогда значит, что каждый питоновский модуль может
>  AT> предоставлять более одной зависимости Provides!  То есть его можно
>  AT> загрузить как Image и как PIL.Image, и эти формы более-менее
>  AT> равноправны.
> Так и есть.
> [dottedmag@vertex:~]% python
> Python 2.5.4 (r254:67916, Feb 18 2009, 03:00:47) 
> [GCC 4.3.3] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import Image
> >>> Image.__file__
> '/usr/lib/python2.5/site-packages/PIL/Image.pyc'
> >>> import PIL.Image
> >>> PIL.Image.__file__
> '/usr/lib/python2.5/site-packages/PIL/Image.pyc'
> >>> 

Хм. А если я сейчас упакую свой
/usr/lib/python2.5/site-packages/PUL/Image.py + PUL.pth - то какой из
пакетов вытянется тому, что затребует python2.5(Image)?

-- 
                                                С уважением, Терешков
                                                Евгений, ALT Linux
                                                Team

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08 15:56                           ` Terechkov Evgenii
@ 2009-06-08 16:07                             ` Mikhail Gusarov
  2009-06-08 16:08                             ` Alexey Tourbin
  1 sibling, 0 replies; 19+ messages in thread
From: Mikhail Gusarov @ 2009-06-08 16:07 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1510 bytes --]


Twas brillig at 23:56:18 08.06.2009 UTC+08 when evg-krsk@yandex.ru did gyre and gimble:

 TE> Хм. А если я сейчас упакую свой
 TE> /usr/lib/python2.5/site-packages/PUL/Image.py + PUL.pth - то какой из
 TE> пакетов вытянется тому, что затребует python2.5(Image)?

[dottedmag@vertex:~]% python
Python 2.5.4 (r254:67916, Feb 18 2009, 03:00:47) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Image
>>> Image.__file__
'/usr/lib/python2.5/site-packages/PIL/Image.pyc'

Интересно, почему? Потому, что PIL выше в sys.path:

>>> import sys
>>> sys.path
['', '/home/dottedmag/openinkpot/trac/trac-trunk', '/usr/lib/python2.5/site-packages', '/home/dottedmag/openinkpot/trac/translatedpagesmacro', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/PUL', '/usr/lib/python2.5/site-packages/gst-0.10', '/usr/lib/pymodules/python2.5', '/usr/lib/pymodules/python2.5/gtk-2.0', '/usr/lib/python2.5/site-packages/wx-2.6-gtk2-unicode']
>>> 

Так что надо смотреть внутрь интерпретатора на предмет выяснения, в
каком порядке добавляются в sys.path пути из .pth-файлов.

-- 

[-- Attachment #2: Type: application/pgp-signature, Size: 834 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08 15:56                           ` Terechkov Evgenii
  2009-06-08 16:07                             ` Mikhail Gusarov
@ 2009-06-08 16:08                             ` Alexey Tourbin
  1 sibling, 0 replies; 19+ messages in thread
From: Alexey Tourbin @ 2009-06-08 16:08 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1594 bytes --]

On Mon, Jun 08, 2009 at 11:56:18PM +0800, Terechkov Evgenii wrote:
> 08.06.2009 Mikhail Gusarov писал:
> 
> >  AT> Но это тогда значит, что каждый питоновский модуль может
> >  AT> предоставлять более одной зависимости Provides!  То есть его можно
> >  AT> загрузить как Image и как PIL.Image, и эти формы более-менее
> >  AT> равноправны.
> > Так и есть.
> > [dottedmag@vertex:~]% python
> > Python 2.5.4 (r254:67916, Feb 18 2009, 03:00:47) 
> > [GCC 4.3.3] on linux2
> > Type "help", "copyright", "credits" or "license" for more information.
> > >>> import Image
> > >>> Image.__file__
> > '/usr/lib/python2.5/site-packages/PIL/Image.pyc'
> > >>> import PIL.Image
> > >>> PIL.Image.__file__
> > '/usr/lib/python2.5/site-packages/PIL/Image.pyc'
> > >>> 
> 
> Хм. А если я сейчас упакую свой
> /usr/lib/python2.5/site-packages/PUL/Image.py + PUL.pth - то какой из
> пакетов вытянется тому, что затребует python2.5(Image)?

Зависимости не объясняют, какой пакет должен вытягиваться, они лишь
отражают фактическое положение дел.  Если в коде написано 'import Image'
то должна быть зависимость на python(Image).  А кого надо вытягивать это
совсем другая проблема.  Но, по крайней мере, зависимости должны
обеспечить, что инструкция import не отвалится сразу же с диагностикой
'not found'.

В некотором смысле, зависимости -- это искусство возможного.
Возможное -- это фактическое положнеие дел, что написано в коде.
А невозможное -- это предсказание будущего (спекулятивное выполнение
кода для установления соответствия между именами модулей и файлами
и т.п.).

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [devel] rpm-build-python-0.34-alt1 regression
  2009-06-08 15:33                       ` Alexey Tourbin
  2009-06-08 15:36                         ` Mikhail Gusarov
@ 2009-06-13  3:31                         ` Alexey Tourbin
  1 sibling, 0 replies; 19+ messages in thread
From: Alexey Tourbin @ 2009-06-13  3:31 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2321 bytes --]

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 <at@altlinux> 0.34.1-alt2
- rpm-build-python-tools: Disabled python dependencies,
  scheduled for removal.

* Sat Jun 13 2009 Alexey Tourbin <at@altlinux> 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)  
> $

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2009-06-13  3:31 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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