On Tue, Sep 20, 2011 at 06:06:26PM +0300, Oleksandr Gavenko wrote: > >>Есть как бы притензия по поводу того, что заранее знать о поломке > >>совместимости нет возможности... Ведь пакет foo создавали когда > >>bar_2.1 еще не вышло. > >Перезальёте. > > > Напомню моделируемую ситуацию - пакет foo уже установлен в старой > версии. > > Если он перезаливается - то версия увеличивается... но это никак не > предоставит информацию о несовместимости старой инстяляции и обновленной > версии стороннего пакета bar. Предоставит, когда новый foo приедет дистапгрейдом. > Логично что о несовместимости можно сообщить в новой версии bar. > Но это влечет за собой необходимость матейнеру bar тестировать все > пакеты, которые зависят от bar, что, мне кажется, никто не делает... Ну bar перезальёте после первого репорта о несовместимости, какая разница. > > У bar при смене soname (поломке обратной совместимости) должно полностью > > меняться имя пакета. Плюс новый не должен пересекаться со старым по > > файлам. Это позволяет иметь установленными две версии libbar, пока весь > > софт не переедет на новую > > > > http://www.debian.org/doc/debian-policy/ch-sharedlibs.html > > > Кажется это и есть "правильное" решение. Нет. Для shared libs это *правильное* решение. Для остальных пакетов, конечно, даже не "правильное". > Для любителей http://semver.org/ можно major помещать в имя пакета > как например: > > python2.5 python2.6 emacs21 emacs22 emacs23 Это особые случаи, как правило особым образом поддерживающие возможность параллельной установки. Делать так для произвольного софта - жуткий оверкилл. > Еще вижу заковырку когда некий пакет объявляет зависимость *только* от > виртуального пакета. Т.к. имя виртуалного пакета не меняется > (ведь его назначение говорить о наличии в системе неких "возможностей"), > то > > Require: emacs (>= 21.4) It doesn't work this way. http://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual > может привести к поломке пакета, если, например, объявленая depreciate depreciate != deprecated > Как выход вижу более явно описывать зависимости: > > Require: emacs21 | emacs22 | emacs23 Да, так и делайте, если охота. -- WBR, wRAR
Attachment:
signature.asc
Description: Digital signature