[devel] Provides/Obsoletes vs Obsoletes

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Апр 3 11:32:55 MSD 2008


On Thu, Apr 03, 2008 at 10:16:46AM +0300, Artem Zolochevskiy wrote:
> > Что означает obsoletes без provides никто не знает.  Вам надо либо
> > поменьше думать, либо побольше читать исходников (и не задавать
> > вопросов).  Можно и просто слушать, что Вам говорят.
> >
> > А Вам говорят, что следует написать так (при очередном увеличении версии):
> > Provides: old-package1 = %version
> > Obsoletes: old-package1 < %version
> > Conflicts: old-package1 > %version
> >
> > Это наиболее надёжная и беспроблемная конструкция.
> 
> Отлично! Так и буду делать впредь при переименовании.
> Можно только уточнить что значит пометочка "при очередном увеличении версии"?

Такую конструкцию (наиболее надёжную) можно использовать только тогда,
когда версия нового пакета отличается в большую сторону от версии
старого пакета.  Если Вы хотите переименовать пакет без изменения
версии, то нужно либо привлекать релиз, либо писать "<=" и вместо "<" --
в любом случае, конструкция получается несколько более двусмысленной.

При очередном увеличении версии можно сделать обратное переименование.

> Но всё же, что делать мне с пакетом old-package2? Вот мой главный вопрос.
> Тоже делать "переименование"? Если да, то в итоге я имею:
> 
> Имеем: old-package1-1.0-alt1
> Имеем: old-package2-3.1-alt1

Если версия old-package2 больше версии нового пакета, то эта схема
работает хуже.  Но это уже не простое переименование, а вытеснение
пакета, который исторически (по версиям) не связан с новым пакетом.

> Делаем переименование old-package1 -> new-package
> Деалется пакет new-package-1.0-alt1 где
> 
> Provides: old-package1 = 1.0
> Obsoletes: old-package1 < 1.0 
> Conflicts: old-package1 > 1.0

Пишите макрос %version, если есть "историческая" связь по версиям.
Смысл в том чтобы использовать макрос %version.

> Далее добавляем в спек new-package-1.0-alt1 пакет old-package2.
> Получается:
> 
> Provides: old-package1 = 1.0, old-package2 = 3.1
> Obsoletes: old-package1 < 1.0, old-package2 < 3.1
> Conflicts: old-package1 > 1.0,  old-package2 > 3.1

Пишите %version, если все три версии (нового пакета и двух старых)
исторически связаны, и при этом версия нового пакета больше двух старых.
Если версия 3.1 исторически не связана с версией нового пакета, либо
больше её, тогда оставить 3.1.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080403/86309c12/attachment-0002.bin>


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