[devel] Provides/Obsoletes vs Obsoletes

Artem Zolochevskiy =?iso-8859-1?q?azol_=CE=C1_altlinux=2Eru?=
Чт Апр 3 10:39:29 MSD 2008


В сообщении от Wednesday 02 April 2008 17:51:32 Alexey Tourbin написал(а):
> On Wed, Apr 02, 2008 at 05:36:13PM +0300, Artem Zolochevskiy wrote:
> > В сообщении от Wednesday 02 April 2008 17:22:42 Alexey Tourbin написал(а):
> > > On Wed, Apr 02, 2008 at 05:14:03PM +0300, Artem Zolochevskiy wrote:
> > > > В чём принципиальное отличие от проприсывания в спеке пакета А:
> > > > Provides = B
> > > > Obsoletes <= B
> > > > (как это рекомендуется делать при переименовании)
> > > >
> > > > от просто Obsoletes <= В.
> > >
> > > В чём разница никто не знает, и как правильно сделать тоже никто не
> > > знает. :)  Obsoletes даёт то, что при ПЕРВОЙ установке obsolete пакет
> > > автоматически удаляется, буде он установлен.  Что, впрочем, не мешает
> > > установить его ещё раз, поверх того что есть.
> >
> > Можно ли это этого заключить, что рекомендация при переименовании ставить
> > и Provides и Obsoletes расчитана на то, что
> > Obsoletes должен удалить "старый" пакет,
> > а
> > Provides ставися на тот пожарный случай, если вдруг у каких-то прочих
> > пакетов в репозитории была зависимость на старое имя?
> >
> > А посему, если гарантированно от старого имени пакета ничего не зависело,
> > то при переименовании можно смело отделаться _только_ Obsoletes.
>
> Нет.  Что делает Obsolets никто не знает.

Во как...

Собственно, над 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. :(

-- 
Артём Золочевский


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