[devel] Provides/Obsoletes vs Obsoletes

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


On Thu, Apr 03, 2008 at 09:39:29AM +0300, Artem Zolochevskiy wrote:
> Собственно, над Obsolets/Provides  я задумался вот в какой ситуации.
> 
> Есть пакет old-package1
> Есть пакет old-package2
> 
> Делается пакет new-package,
> который по сути просто переименованный old-package1, и его логическое 
> продолжение.
> 
> В new-package прописал, как и где-то рекомендовали при переименовании:
> Provides = old-package1-релиз
> Obsoletes <= old-package1-релиз
> 
> Далее смотрю на пакет old-package2, и понимаю, что всё его содержание (почти 
> на 90%) повторяет новый пакет new-package. Т.е. надо бы его упразнить в 
> пользу new-package.
> 
> Думаю, как правильно поступить.
> Можно:
> 1. Просто без всяческих манипуляций отправить пакет в obsolete и его более не 
> будет в репозитории. Наверное это не самый хороший метод, ибо если такой 
> пакет (old-package2) был установлен на чьей-то машинке, то так он мусором и 
> останется стоять.
> 
> 2. Произвести манипуляции, при которых old-package2 будет заменён другим 
> пакетом при обновлении.
> 
> Теперь думаю, что правильнее добавить в new-package, чтоб избавиться от 
> ненужного old-package2?
> 
> Сделать будто это ещё одно переименование? old-package2 -> new-package ?
> ХОтя этот вариант, вроде, не совсем "честный". Всё же new-package -- это 
> переименованный  old-package1, а не old-package2.
> 
> т.е. new-package будет выглядеть уже так:
> Provides: old-package1 = версия-релиз, old-package2 = версия-релиз
> Obsoletes: old-package1 <= версия-релиз, old-package2 <= версия-релиз
> 
> Либо ограничиться просто Obsoletes, тогда всё выглядит так:
> Provides: old-package1 = версия-релиз
> Obsoletes: old-package1 <= версия-релиз, old-package2 <= версия-релиз
> 
> Ну и вообще смотрю я на это, и понимаю, что ясно не понимаю к чему служит 
> Obsolete, а к чему Provides и зачем, например, при переименовании вообще 
> высталять Provides. :(

Что означает obsoletes без provides никто не знает.  Вам надо либо
поменьше думать, либо побольше читать исходников (и не задавать
вопросов).  Можно и просто слушать, что Вам говорят.

А Вам говорят, что следует написать так (при очередном увеличении версии):
Provides: old-package1 = %version
Obsoletes: old-package1 < %version
Conflicts: old-package1 > %version

Это наиболее надёжная и беспроблемная конструкция.

И не надо писать -%release, релизы вещь хрупакая, в сизифе релизы одни
а в бранче другие.  А вот версии пакетов практически даны нам от Бога!
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/adf80cd2/attachment-0002.bin>


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