Bug 9772

Summary: Неточность в спеке (emacs-tramp obsoletes)
Product: Sisyphus Reporter: Evgenii Terechkov <evg>
Component: emacs22-commonAssignee: Eugene Vlasov <eugvv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: minor    
Priority: P2 CC: evg, msp, ns, viy
Version: unstable   
Hardware: all   
OS: Linux   

Description Evgenii Terechkov 2006-07-12 10:41:40 MSD
В спеке для emacs22-22.0.50-alt0.13.20060614 есть строка:
Obsoletes: %shortname-tramp <= 2.0.39-alt1

А нужно:
Obsoletes: %shortname-tramp

Обоснование: если человек обновляется с emacs21 и устанавливал tramp новее, чем
в дистрибутиве M24 (как я например), то для этого нужно сначала вручную удалить
emacs-tramp.

Можно конечно оставить, как есть, но это неаккуратненько. Альт всё ж таки не
СуСЕ какая, с мантрой "сиди, не дёргайся, жди следующего дистрибутива, там будет
новая версия".
Comment 1 Eugene Vlasov 2006-07-12 14:04:07 MSD
Что значит "устанавливал tramp новее, чем в дистрибутиве M24"? Откуда вы его взяли?
В Sisyphus последняя версия (перед выносом в orphaned) была 2.0.39-alt1, эта же
версия была в M24 и С30.
Comment 2 Evgenii Terechkov 2006-07-12 14:14:20 MSD
Прям из спека и взял. 2.0.39-alt1 там. В Сизиф только на этот счёт не заглянул.
Но заметил, что в M24 тоже версия. Это вроде совпадение.
Это я к своему use case:
поимев какие-то проблемы с удалённой работой с RCS в tramp я его обновил до
2.0.5x. Сейчас пришлось вручную удалять emacs-tramp перед установкой
emacs22-common (конфликт файлов из этих пакетов возникал, хотя между самини
пакетами конфликта нету). ИМХО, привязку к определённой версий в obsoletes надо
выкинуть, всё равно emacs-tramp лёг в orphaned.
Comment 3 Evgenii Terechkov 2006-07-13 05:31:13 MSD
И вообще, если уж tramp из сборки emacs22 не выделяется в отдельный пакет, то
имеет смысл ставить Conflicts: %shortname-tramp. Ведь какую версия ни ставь, всё
равно возникнет конфликт по спискам файлов. Пусть уж лучше будет конфликт пакетов. 

Это же касается и других "изкоробочных" компонентов emacs22. Тут вроде два
варианта: либо оставить как есть (и убрать указания на версий пакетов), либо
выделять (ряд) компонентов в отдельные пакеты. Второй путь выглядит
перспективнее, т.к. можно будет эти компоненты по частям штатно обновлять
(впрочем, непонятно, действительно ли это нужно). Но и геморойнее конечно.
Comment 4 Eugene Vlasov 2006-07-14 12:11:50 MSD
То, что было сделано - было правильно.
Во первых, по поводу conflicts: он хорош, когда необходима установка одного из
взаимоисключающих пакетов. В данном случае по смыслу правильным будет именно
obsoletes - ведь emacs22-common содержит тот же emacs-tramp, только более свежей
версии.
Теперь - по поводу того, чтобы убрать версионирование obsoletes - рано или
поздно выйдет релиз emacs22, его развитие остановится и версия tramp, входящая в
его состав будет далее неизменна. А tramp будет развиваться дальше - это значит
однажды может возникнуть потребность вернуть emacs-tramp в Sisyphus. Текущая
схема позволяет это сделать без какого-либо изменения в emacs22.

Итого, я в данный момент вижу два варианта, как мне поступить с этой записью в
bugzilla:
1. Закрыть баг как INVALID - в конце концов за пакеты, которые вы собираете сами
отвечаете именно вы, а не майнтейнеры соседних пакетов.
2. Увеличить версию tramp в obsoletes, написать
Obsoletes: %shortname-tramp < %tramp_version-%release
и (возможно) выделить tramp в отдельный подпакет.
Comment 5 Evgenii Terechkov 2006-07-14 13:27:36 MSD
Хм. Вы правы, только сейчас дотумкал - втроенный трамп и внешний таки не будут
конфликтовать по списку файлов. Только с инициализацией разрулить.

> 1. Закрыть баг как INVALID - в конце концов за пакеты, которые вы собираете сами
отвечаете именно вы, а не майнтейнеры соседних пакетов.

Логично и справедливо, но лучше таки пункт 2.

> 2. Увеличить версию tramp в obsoletes, написать
Obsoletes: %shortname-tramp < %tramp_version-%release

Если не нарезать более мелко, то так пожалуй будет лучше всего.

> и (возможно) выделить tramp в отдельный подпакет.

Проблема шире - их, как обычно, "миллионы". Подпакетов в смысле. Разница между
"резать/не резать" только в том, будут ли лежать на винте файлы устаревшего
подпакета. Можно наверно и не резать. Токько инциализацию/загрузку подпакетов,
перекрывающих входящие в emacs надо сделать.

P.S.: Сейчас посмотрел внимательнее, что эти пакеты не поделили. Вы будете
смеяться: один файл (/usr/share/info/tramp.info.bz2). Почему-то вспомнились
alternatives, с которыми дома была затяжная войнушка :-)
Comment 6 Eugene Vlasov 2006-07-21 13:52:38 MSD
Исправлено в 22.0.50-alt0.14.20060715