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.