ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Новый python триллер
@ 2004-10-05 13:09 Andrey Orlov
  2004-10-06 11:07 ` Alexey Morozov
  0 siblings, 1 reply; 5+ messages in thread
From: Andrey Orlov @ 2004-10-05 13:09 UTC (permalink / raw)
  To: ALT Devel discussion list

Hi!

Только что я залил в дедалус пакет rpm-build-python-0.16-alt6.src.rpm. Это искалка зависимостей с доработанной
логикой. Суть доработки сводится к тому, что теперь могут искаться зависимости вида
"python" <N> "." <M> "(" <NAME> [ "."  <NAME>]* ")", чего раньше не было. Соответствующие Provides тоже 
ищутся. Наличие таких зависимостей позволило ввести возможность "распиливать" пакеты модулей на
подпакеты, входящие в один модуль, что мы с Алексеем Морозовым назвали "Распиленные модули". Зачем
это нужно - Алексей расскажет лучше меня, я же только могу посоветовать прочитать ответы на вопросы 
28-30 FAQ (прилагается). 

Теперь немножко предупреждений. Так как до сих пор все пакеты собирались с упрощенной искалкой зависимостей,
пересборка модуля с новой искалкой скорее всего вызовет unmets. Поэтому поиск зависимостей по умолчанию
эмулируется старый, а вот provides ищутся уже новые - это не вызывает unmets (наверно). Чбы отключить эмуляцию
нужно набрать в спеке 

%python_req_hier 

После чего, как уже было написано, ваш модуль, скорее всего, перестанент работать и нужно будет что-то 
с этим сделать.

Через некоторое время rpm-build-python переедет в сизиф. А еще через некоторое время %python_req_hier окажется
по умолчанию включенным. Вам стоит подготовится к этому, чбы не было как всегда - т.е. включить его самим.

Ситуация осложняется тем, что чбы использовать все новые фичи нужно патчить rpm. Патч будет отправлен LDV 
и rpm пропатчится. 

Если кому-то опять не нравится имя макроса - python-hier или какого-либо еще из вновь добавленных - самое 
время наглюкать багрепорт: пожалуста, не тяните до сизифа, а тем более до релиза, как обычно бывает.

Новые показания FAQ следуют, полная версия доступна в пакете или на http://www.neural.ru.

== FAQ ==
    Q28:    Я хочу разбить модуль на две подпакета, только одна из которых
        содержит файл __init__.py, но искалка Provides находит только зависимости из
        одного пакета (в который входит __init__.py). Что делать?
        
    A28:    Нужно воспользоваться макросом python_module_declare <PATH>, где
        <PATH> - путь к каталогу содержащему файл __init__.py :
        
            python_module_declare /usr/lib/python2.3/email/
            
        Тогда поиск Provides для любого подпакета будет считать, что он
        обнаружил в каталоге <PATH> файл __init__.py, а для пакета, в
        который включена такая декларация автоматически добавится
        зависимость на модуль, соответствующий пути <PATH>;
        
        (в текущей версии макрос python_module_declare может не работать)
        
    Q29:    Что такое иерархическая зависимость?                    
    
    A29:    Иерархическая зависимость - это зависимость на модуль, вложенный
        внутрь другого модуля. Такая зависимтость записывается как :
        
            "python" <N> "." <M> "(" <NAME> [ "." <NAME> ] * ")"
            
        И порождается синтаксической конструкцией вида :
        
        
            "import" " " <NAME> [ "." <NAME> ]*
            
        Имеющий смысл "импортировать модуль NAME (2) из модуля NAME (1)".
        
    Q30:   Почему конструкция from <MODULE> import <NAME> не порождает
        иерархическую зависимость?
        
    A30:    Потому что в этой конструкции <NAME> не обязательно
        соответствует модулю - т.е. файлу (каталогу), а может
        соответствовать любому имени, определенному в модуле MODULE. Для
        языка Python не существует способа составить полный список таких
        имен до исполнения программы (хотя бы потому, что их список может
        изменятся в процессе выполнения программы произвольным образом).
================

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


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

* Re: [devel] Новый python триллер
  2004-10-05 13:09 [devel] Новый python триллер Andrey Orlov
@ 2004-10-06 11:07 ` Alexey Morozov
  2004-10-06 13:02   ` Andrey Orlov
  0 siblings, 1 reply; 5+ messages in thread
From: Alexey Morozov @ 2004-10-06 11:07 UTC (permalink / raw)
  To: ALT Devel discussion list

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

On Tue, Oct 05, 2004 at 05:09:48PM +0400, Andrey Orlov wrote:
> ищутся. Наличие таких зависимостей позволило ввести возможность
> "распиливать" пакеты модулей на подпакеты, входящие в один модуль,
> что мы с Алексеем Морозовым назвали "Распиленные модули". Зачем
> это нужно - Алексей расскажет лучше меня, я же только могу посоветовать
> прочитать ответы на вопросы 28-30 FAQ (прилагается). 
Ну, я вот сейчас подумал, кажется, такой "тщательный" поиск
зависимостей, на самом деле, нужен очень немногим пэкеджам.
Для большинства пэкеджей входящие в них подмодули являются неделимым
целым, и, соответственно, можно не усложнять систему зависимостей.

Но вот для ряда "из ряда вон выходящих" пакетов
(twisted, вероятно, 4suite и Zope'овые продуктов) распиливание
является a-must, иначе зависимости пакета будут совершенно безумные.

Так, например, если не распиливать twisted, то он потянет за собой
pygtk (обеих версий :-)), pyqt, tkinter да еще и kqueue с win32api в
придачу :-). Очевидно, что большинству пользователей twisted gtk-based
реактор даром не сдался. Да и win32'шный использовать в нашем случае
будет затруднительно...

Поэтому предлагается компромисс: для тех, кому это действительно нужно,
создается (уже создан) дифайн (м.б. отдельно для requires и provides).
Остальные живут как живут, и не утяжеляют базу зависимостей.


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

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

* Re: [devel] Новый python триллер
  2004-10-06 11:07 ` Alexey Morozov
@ 2004-10-06 13:02   ` Andrey Orlov
  2004-10-06 13:13     ` Andrey Orlov
  0 siblings, 1 reply; 5+ messages in thread
From: Andrey Orlov @ 2004-10-06 13:02 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 06 October 2004 15:07, Alexey Morozov wrote:
> Поэтому предлагается компромисс: для тех, кому это действительно нужно,
> создается (уже создано) умолчание (м.б. отдельно для requires и provides).
> Остальные живут как живут, и не утяжеляют базу зависимостей.

Не получится. Я уже писал - если основные поставщики модулей пересобраны
без иерархических провайдес, то модуль, собранный и иерархическими requires не
найдет своих зависимостей. А requires зависимости не утяжеляет. Поэтому или все,
или никто.

ЗЫ: Собственно, перл насколько я понимаю делает точно так же и никого это не парит.

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


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

* Re: [devel] Новый python триллер
  2004-10-06 13:02   ` Andrey Orlov
@ 2004-10-06 13:13     ` Andrey Orlov
  2004-10-06 15:14       ` Andrey Orlov
  0 siblings, 1 reply; 5+ messages in thread
From: Andrey Orlov @ 2004-10-06 13:13 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 06 October 2004 17:02, Andrey Orlov wrote:
> Не получится. Я уже писал - если основные поставщики модулей пересобраны
> без иерархических провайдес, то модуль, собранный и иерархическими requires не
> найдет своих зависимостей. А requires зависимости не утяжеляет. Поэтому или все,
> или никто.

Чбы не быть голословным, можешь попробовать любой из своих модулей пересобрать
с rpm-build-python 0.16, патч к rpm лежит в багзилле. Сейчас как раз такая ситуация,
которую ты отстаиваешь. Из моих пакетов, заработал один из четырех испытанных. Остальные
рухнули на import email.Header, ZODB.Filestorage, etc.

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


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

* Re: [devel] Новый python триллер
  2004-10-06 13:13     ` Andrey Orlov
@ 2004-10-06 15:14       ` Andrey Orlov
  0 siblings, 0 replies; 5+ messages in thread
From: Andrey Orlov @ 2004-10-06 15:14 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 06 October 2004 17:13, Andrey Orlov wrote:
> Чбы не быть голословным, можешь попробовать любой из своих модулей пересобрать
> с rpm-build-python 0.16, патч к rpm лежит в багзилле. Сейчас как раз такая ситуация,
> которую ты отстаиваешь. Из моих пакетов, заработал один из четырех испытанных. Остальные
> рухнули на import email.Header, ZODB.Filestorage, etc.

Я пересобрал 2.3.4. Получилось 508 provides, из них 236 - иерархических, из них 78 - кодировки из
модуля encodings. Так что я думаю оптимизировать тут ничего не стоит, так как проблема чисто теоретического 
плана.

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------


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

end of thread, other threads:[~2004-10-06 15:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-10-05 13:09 [devel] Новый python триллер Andrey Orlov
2004-10-06 11:07 ` Alexey Morozov
2004-10-06 13:02   ` Andrey Orlov
2004-10-06 13:13     ` Andrey Orlov
2004-10-06 15:14       ` Andrey Orlov

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