[devel] FAILED srpm=exiv2-0.18-alt1.src.rpm

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Фев 19 10:09:26 MSK 2009


On Wed, Feb 18, 2009 at 10:09:13PM +0200, Igor Vlasenko wrote:
> On Wed, Feb 18, 2009 at 04:20:14PM +0300, Alexey Tourbin wrote:
> > Придётся в рамках одного задания чинить все пакеты.
> 
> Это подходит для простого паттерна:
> обновилась библиотека - починили клиенты.
> 
> Для сложных случаев с многоступенчатым бутстрап-процессом
> это не пойдет.

Вы хотите оставить репозитарий в разломанном состоянии "на честном
слове", что со временем пойдут какие-то многоступенчатые процессы,
и низшая углеродная фракция реактивного двигателя со временем отпадёт,
как глазьевская партия "Родина", как несмысленные галаты, которые отпали
от благодати.

Но в этом же самое время репозитарием пользуются другие люди (а также
на нём собираются пакеты).

Задача состоит в том, чтобы не допускать разлома репозитария вообще,
то есть допускать только транзакционные обновления пакетов, при которых
сохраняется целостность репозитария.

> > С src.rpm пакетами это будет сделать несколько сложнее,
> > чем с gear-репозитариями.
> 
> С src.rpm пакетами сделать одной транзакцией не возможно,
> конечно.

Вроде бы, можно.  Насколько я знаю, все src.rpm пакеты (одного
мейнтейнера), залитые в incoming за время дельта-тэ, формируют
отдельное задание.  Правда, если задание не проходит, то весь
набор пакетов придётся заливать заново.

> Вопрос не в этом. С этими unmets что здесь чему служит?
> Суббота для человека или человек для субботы?
> 
> Технически робота обмануть очень легко. Для этого достаточно
> подмешать в транзакцию пакет пустышку, который провайдит все 
> анметы и еще золотые горы в придачу, и следующей транзакцией
> удалить пустышку.

Робота будет обмануть сложнее, когда тестовая пересборка пакетов
станет обязательным условием.

> Когда я выкладывал maven 2.0.7, как раз был переезд, 
> пакет первый раз не прошел. Я посовещался с Димой и
> мы пришли к выводу, что проще добавить provides в пустышку.
> 
> Сам по себе unmet ни плох, ни хорош. Все зависит от контекста 
> его появления. Как человек с пистолетом может нарушать порядок,
> а может и поддерживать его. А пистолет сам по себе ни хорош ни плох.

И да, и нет.  Как правило, антметы нарушают целостность репозитария,
не предоставляя взамен никаких выгод.  В редких случаях проще создать
анмет, чтобы потом достаточно быстро его ликвидировать.  Но это
открывает промежуток времени дельта-тэ с достаточно непредсказуемыми
последствиями для репозитария.  Новый "временный" анмет может
заблокировать сборку других пакетов.  Просчитать последствия отдельно
взятого анмета -- это нетривиальная задача.  В худшем случае после
появления анмета перестанет работать 'hsh --initroot', и без грубого
вмешательства уже никак нельзя будет вывести систему из ступора.

Я вообще изначально хотел сделать общий список "нефатальных нарушений"
задания, и относить анметы к этому списку, чтобы можно было их
контролировано допускать (аналог "посовещаться с Димой").  Но, в общем,
пока проверка на анметы работает безусловно.

> А я не робот, чтобы уместить многоступенчатое обновление на 
> 50-150 пакетов в одну транзакцию. 
> А раз в год-полгода у меня такая необходимость возникает :(

Делать большие переезды одной транзакцией, конечно, неудобно,
но возможно, кроме некоторых случаев bootstrap.

А может быть, если требуются такие "полные переезды", то это значит,
что задана слишком жесткая система связей между пакетами?  Для noarch
пакетов жесткую систему связей обычно можно немного ослабить.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20090219/0c39fede/attachment.bin>


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