[devel] Python Modules Policy:
Алексей Любимов
=?iso-8859-1?q?avl_=CE=C1_l14=2Eru?=
Чт Фев 12 20:10:53 MSK 2004
Alexey Morozov пишет:
>On Thu, Feb 12, 2004 at 06:22:14PM +0300, Алексей Любимов wrote:
>
>
>>>См. письмо про RFC.
>>>Андрей Орлов в джаббере высказал мнение, что, возможно, стоит пойти по
>>>другому пути, с доводкой до ума libAltDist. Возможно, это тоже путь.
>>>Более подробно он выскажется сам.
>>>
>>>Сейчас, я так понимаю, нужно выслушать мнение тех, кто реально будет эти
>>>самые модуля собирать (и использовать).
>>>
>>>
>>По моему, все трое уже высказались. :)
>>
>>
>Где? Я видел реакцию на мой RFC исключительно от Андрея. И то, в общем,
>неполную, а так "навскидку".
>
>
Молчание, это тоже мнение.
Лично уменя яду не набралось, чтобы возопить, а плюсов я пока тоже не
пронаблюдал.
см далее.
>>>См. моё решение. F*cking magic, но таки "работает для меня". Причем,
>>>если нужно, добавки происходят относительно безболезненно, как _мне_
>>>_кажется_ в _настоящее время_
>>>
>>>
>>все, что связано с rpm должно пройти проверку на совместимость с
>>сандменом. Иначе лично мне нет смысла разводить драку.
>>Вроде проблем не должно быть...
>>
>>
>Ну, я попробую утащить все это дело к Мише, и собрать в хэшере.
>Благо, там немного...
>
>
вариант.
>>>>По моему все очень просто - поставил Requires: python = %<pversion> и
>>>>получил нужную зависимость.
>>>>
>>>>
>>>Все автоматом происходит. Аллилуйя! :-)
>>>
>>>
>>не пугайте.
>>
>>
>Нет, Вы все-таки попробуйте :-)
>pyserial.spec я выдал. У меня уже теперь есть спек на MySQL-python,
>заточенный под. Дальше будут модули, от которых зависит Twisted и сам
>Twisted.
>
>
ближе к выходным попробую.
>>>Но для модулей такая зависимость реально нужна.
>>>
>>>
>>Далеко не во всех питон-программах есть модули, но используются модули
>>почти везде.
>>
>>
>И? Пускай себе используют, моя-то какая беда?
>
их может не быть в текущем используемом питоне.
>>Кроме того иногда нет нужды в строгих зависимостях. Спец софт или
>>девелоперский вариант вполне допускает такие фокусы.
>>
>>
>Стоп, какие фокусы?
>
>
да просто собрал пакет и отдал его редхатчику. у него же нет таких
пакетов в конце концов.
или девелоперская версия с непонятными пока еще зависимостями...
>>>Да, конечно. Но они как правило говорят просто
>>>import smth
>>>а уж откуда этот smth потянется - забота того питона, при помощи
>>>которого эта прога выполняется. Сменится питон, сменится и место.
>>>Но это никак не заденет саму прогу (вопросы совместимости разных
>>>версий _языка_ оставим в стороне)
>>>
>>>
>>а зависимости в пакете на эти модули кто будет ставить и каким образом?
>>
>>
>Очень просто
>Requires: python-pyserial = <требуемая версия>
>Оно автоматом предоставляется.
>В смысле,
>pythonXY-pyserial предоставляет pyserial
>Если у программы нет предпочтений по поводу, какой питон ей
>использовать, она просит именно "общую версию".
>
>>Если программа собрана под питон23, то и зависиость будет python23-smth.
>>такой вариант работает.
>>
>>
>Ну, "программа", в общем случае, ни под что не собрана, она сама по себе
>программа. С #!/usr/bin/env python .. внутри. Как сделать так, чтобы
>она хотела python-Module1 python-Module2 python-Module3, и при установку
>в систему _еще_ одного питона, в _дополнение_ к существующему, автоматом
>притаскивались pythonXY-Module1, pythonXY-Module2 итп, я [пока] не знаю.
>
>
так вот о том и речь.
с этой ерунды же все и началось, что при наличии нескольких питонов, (а
это норма, учитывая необходимость пересборки всех модулей перед
снесением старой версии) зависимости получаются левыми...
>>а если "универсальный вариант", то получится тот же коленчатый вал,
>>когда половина модулей в одном питоне, половина в другом, а программа
>>импортит оба множества и с любым питоном не работает при полном
>>непротиворечии в базе rpm.
>>
>>
>Ну, надо что-то придумывать. Либо сказать, что те, кто держит у себя на
>машине сразу _два_ питона, должны делать всё руками и внимательно.
>Разница лишь в том, что предложенная мной схема _допускает_ возможность
>решения в случае, если питонов больше одного. Но на уровне: "надо -
>сделай сам". Хоть и предоставляет достаточно удобные [на мой взгляд ;-)]
>ручки конечному пользователю.
>
>
да пока что "ручки" Орлова ничем не хуже. Что там, что там есть
требование держать только один питон.
Чего тогда колготится?
>>+ Альтернатива slave к питону.
>>
>>
>Альтернатива на _что_?
>
>
на twisted. но это не обязательно, если поставить conficts друг на друга.
>
>
>>>Ну, можно, конечно, оформить это как %def_without python_source,
>>>но, гхм... В общем, думать надо.
>>>
>>>
>>ага.
>>
>>
>Ну, тогда, когда нужны .py, тянем .src.rpm и пересобираем? Так что-ли?
>
>
Я бы просто клал *.py в пакет *.doc в /usr/share/doc/src/путь от корня/*.py
Захотел исходничков - поставил *.doc и посмотрел.
Хотя в общем случае - не дело rpm такие слои нарезать. Дело рпм ставить
пакеты и следить за минимумом зависимостей. И все...
>>>Супер.
>>>
>>>
>>ерунда. он в плоне как раз и не установлен.
>>
>>
>Меня список впечатлил. Как говорится, и шо ви с этог'о имеете? :-)
>
>
половина, это зависимости plone + рассылка postboxer + форум cmfboard с
зависимостями + клиент для imap почты + wiki.
И это все...
>
>
>>>При этом версия питона "по умолчанию" мне, в общем, по барабану
>>>(ну, при условии, что у меня код написан так, что его реально можно
>>>
>>>
>...
>
>
>>>случае, а slave'ы на python), ничего специального. Выбор версии питона
>>>происходит в момент пробегания по /usr/bin/python -> ... ->
>>>/usr/bin/pythonX.Y
>>>
>>>
>>ну так и ставить нужную версию.
>>twisted23 или twisted22 если так уж не хочется альтернатив.
>>
>>
>Ну, это да, конечно. Просто если держать обе сразу (у меня были такие
>шальные мысли, по крайней мере, поначалу), то тогда их (программы)
>приходится разводить по именам, городить альтернативы итп. А зачем,
>если они все равно одинаковые? Поэтому я и поступил таким вот образом.
>
да конечно проще просто поставить конфликт друг на друга. в 99% это
будет самое умное решение.
Подробная информация о списке рассылки Devel