[devel] Re: I: Sisyphus-20050816 unmets: +7 (102/46)
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Авг 16 04:40:31 MSD 2005
On Tue, Aug 16, 2005 at 03:59:17AM +0400, Alexey Gladkov wrote:
> Сейчас сбои случаются из-за того, что incominger не учитывает версии в
> BuildRequires.
Хешер, кажется, тоже не учитывает версии *виртуальных* пакетов в
BuildRequires. Их просто apt не понимает.
> Сейчас работаю над реализацией этой проверки. В incominger уже давно
> есть скрипт для проверки unmets, но он не использовался из-за того,
> что genbasedir ооооочень медленно работает.
А в sources.list есть метод rpm-dir, он не поможет? То есть можно
генерировать не полный репозитарий, а оверлейный как надстройку для
данной транзакции. В общем, я пока до конца не врубаюсь. Надо ещё
incominger-0.0.7.3 почитать.
> Все unmets можно классифицировать. После этого можно рассмотреть
> каждую группу и принять решение. Это реально сделать.
> Вопрос в другом и ты его задал. Сделаю это еще раз: что делать если
> неудовлетворенность порождается пакетом от которого зависят другие
> пакеты в разобранном инкоминге?
> По логике нужно исключить битый пакет и попробовать собрать пакеты без
> него. Но это может долгая и бессмысленная работа.
Нет, сначала нужно собрать все пакеты "без задней мысли". Получится
переходный репозатирий. Переходный репозитарий = главный репозитарий +
оверлей. Оверлей -- это типа транзакции, --with-stuff, которая содержит
пакеты, которые будут перемещены/заменены в главном репозитарии.
Далее сравниваем главный и переходный репозитарии по количеству
unmet'ов. Если в переходном репозитарии есть новые unmet'ы, то пробуем
исключить из оверлея пакеты один за другим, и каждый раз проверяем новые
unmet'ы. Если при исключении очередного пакета количество unmet'ов
уменьшается, то этот пакет помещается в отстойник, поиск врагов
продолжается на оставшемся оврлее.
> Если же откладывать всех требующих битый пакет, мы можем получить
> некоторый ДОС. Но это жертва на которую я готов пойти. Ведь виновника
> можно очень просто выявить(до пересборки допускаются только
> подписанные пакеты) и дать по мозгу.
Есть два критерия "пакетов, которые требуют битый": 1) жесткий критерий,
то есть версионная зависимость на именно этот битый пакет; 2) мягкий
критерий, в смысле выстраивания очереди на пересборку.
Вопрос: если имеет место быть мягкий критерий, т.е. если группу пакетов
желательно пересобрать с битым, но можно пересобрать и с более ранней
версией битого пакета в главном репозитарии, то что делать? Если битый
пакет несёт с собой библиотеку с новым soname'ом, то очень плохо. Но
заранее узнать нельзя.
> > Кстати, я написал/дописал утилиту для *упрощенного* поиска unmet'ов.
> > Казалось бы, куда уж проще, но всё же...
> >
> > $ ./unmets -s m24-sources.list
>
> Отлично!
> Я предпочитаю пользоваться простой старой табуреткой: aptbox+diff.
Это и есть wrapper для aptbox, только он переформатирует вывод apt,
чтобы unmet'ы были по одному на строчку. Такой список уже можно
сортировать или грепать, что немаловажно. А вместо diff здесь лучше
подходит comm.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20050816/6a1a9625/attachment-0001.bin>
Подробная информация о списке рассылки Devel