[devel] Python Modules Policy:

Алексей Любимов =?iso-8859-1?q?avl_=CE=C1_l14=2Eru?=
Чт Фев 12 18:22:14 MSK 2004


>См. письмо про RFC.
>Андрей Орлов в джаббере высказал мнение, что, возможно, стоит пойти по
>другому пути, с доводкой до ума libAltDist. Возможно, это тоже путь.
>Более подробно он выскажется сам.
>
>Сейчас, я так понимаю, нужно выслушать мнение тех, кто реально будет эти
>самые модуля собирать (и использовать).
>  
>
По моему, все трое уже высказались. :)

>>>ldv@ уже предложил решение, которое, вроде бы, не хуже по последствиям,
>>>но автоматизируется. Прокомментируйте его, пожалуйста.
>>>      
>>>
>>Менять макросы rpmbuild?
>>По моему это источник еще одной головной боли.
>>Опять будет куча unmets, как это происходит при любом чихе сейчас с 
>>перлом и прочими.
>>    
>>
>См. моё решение. F*cking magic, но таки "работает для меня". Причем,
>если нужно, добавки происходят относительно безболезненно, как _мне_
>_кажется_ в _настоящее время_
>  
>

все, что связано с rpm должно пройти проверку на совместимость с 
сандменом. Иначе лично мне нет смысла разводить драку.
Вроде проблем не должно быть...

>>Но самое главное, будет непрозрачное повдение rpm при сборке пакета.
>>Проблема с с зависимостями питона не так серьезна, чтобы рубить с плеча.
>>По моему все очень просто - поставил Requires: python = %<pversion> и 
>>получил нужную зависимость.
>>    
>>
>Все автоматом происходит. Аллилуйя! :-)
>  
>
не пугайте.

>>А не поставил - получил более свободный и универсальный вариант. Всем 
>>хорошо и никому плохо.
>>    
>>
>Но для модулей такая зависимость реально нужна.
>
Далеко не во всех питон-программах есть модули, но используются модули 
почти везде.
Кроме того иногда нет нужды в строгих зависимостях. Спец софт или 
девелоперский вариант вполне допускает такие фокусы.

>Да, конечно. Но они как правило говорят просто
>
>import smth
>
>а уж откуда этот smth потянется - забота того питона, при помощи
>которого эта прога выполняется. Сменится питон, сменится и место.
>Но это никак не заденет саму прогу (вопросы совместимости разных
>версий _языка_ оставим в стороне)
>  
>

а зависимости в пакете на эти модули кто будет ставить и каким образом?
Если программа собрана под питон23, то и зависиость будет python23-smth. 
такой вариант работает.

а если "универсальный вариант", то получится тот же коленчатый вал, 
когда половина модулей в одном питоне, половина в другом, а программа 
импортит оба множества и с любым питоном не работает при полном 
непротиворечии в базе rpm.

>
>	* имеется Twisted (благо, он действительно имеется, собран и
>	  подходит для примера)
>	* при сборке образуются следующие модули:
>		* python<NN>-Twisted - сборище _модулей_ из Twisted
>		  (вероятно, я распилю этот пакет на Twisted,
>		  Twisted-web, Twisted-gtk итп)
>		* python-Twisted-utils - вещи, которые, грубо говоря,
>		  идут в /usr/bin/ и от конкретной версии питон не
>		  зависят
>		* python-Twisted-doc и всё остальное прочее барахло,
>		  которое потребно лишь девелоперам
>  
>


Вариант

pyhon22-Twisted  полный коплект в  варианте для pyhon22
pyhon22-doc

pyhon23-Twisted  полный коплект в  варианте для pyhon23
pyhon23-doc

+ Альтернатива slave к питону.


>>>Без разможения пакетов - плохо, по-моему. Я сейчас периодически сам
>>>заглядываю в твистедовые потроха, чтобы понять, что же имелось ввиду в
>>>доке.
>>>      
>>>
>>я имею в виду не молчаливое удаление *.py как это сделали с *.la, а 
>>некий инструмент, селектирующий систему после (и в процессе) установки.
>>    
>>
>Ну, можно, конечно, оформить это как %def_without python_source,
>но, гхм... В общем, думать надо.
>
ага.

>>То есть один дистрибутив расщепился на 15 пакетов, что уже много.
>>    
>>
>В общем, пилить его надо. Не знаю, какова ситуация именно с Zope, но
>по зависимостям полный Twisted, если его паковать правильно, тянет,
>н-р, pygtk, который тянет GTK+/Glade, а что начинается дальше, в общем,
>рассказывать не надо, да? :-) И это несмотря на то, что я, в общем,
>захотел безобидной вещи, простенький серверок поверх http запустить :-)
>"Абидна, да-а?! Ничего нэ сдэлал, да-а?!"
>

Зависимости, это как раз причина для распила. В zope я этой причины не 
пронаблюдал. Может, плохо смотрел.

>Кстати, насчет .pyc vs .pyo. В .pyc есть какой-нибудь смысл при наличии
>.pyo (кроме отдельно оговоренных единичных случаев)?
>  
>
Андрей явно более осведомлен.
По моему не нужны pyc

>>Вот, что дополнительно используется только на www.linux-os.ru (ничего 
>>такого специфичного)
>>
>>ArchExample
>>    
>>
>...
>Супер.
>
ерунда. он в плоне как раз и не установлен.

>>а какой смысл в разделении? не проще ли собрать два пакета вместо 
>>четырех, полностью их скомпилировать и в дальнейшем сопровождать?
>>    
>>
>Очень просто.
>Когда я ставлю/запускаю /это/ я говорю
>
>twisted -ny server_start.py (или вообще .tap)
>
>При этом версия питона "по умолчанию" мне, в общем, по барабану
>(ну, при условии, что у меня код написан так, что его реально можно
>таскать. Если таскать нельзя, то в том месте, которое таскать нельзя
>стоит: "нужен именно pythonX.Y!" и старт обламывается). При этом мне не
>нужно ни альтернатив (которые, вообще-то, не самостоятельные в данном
>случае, а slave'ы на python), ничего специального. Выбор версии питона
>происходит в момент пробегания по /usr/bin/python -> ... ->
>/usr/bin/pythonX.Y
>  
>
ну так и ставить нужную версию.
twisted23 или twisted22 если так уж не хочется альтернатив.






Подробная информация о списке рассылки Devel