From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Epiphanov Sergei To: ALT Devel discussion list Date: Fri, 14 Jul 2006 11:09:42 +0400 User-Agent: KMail/1.9.1 References: <44B32B15.3040108@altlinux.org> <44B395AA.6080601@altlinux.ru> <200607131850.41733.icesik@mail.ru> In-Reply-To: <200607131850.41733.icesik@mail.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit Content-Disposition: inline Message-Id: <200607141109.43060.serpiph@nikiet.ru> Subject: Re: [devel] =?koi8-r?b?68/HxMEg0MHLxdTZINDP0dfM0cDU09Eg1yDzydrJxsU/?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.7 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Jul 2006 07:10:12 -0000 Archived-At: List-Archive: List-Post: В сообщении от Thursday 13 July 2006 19:50 Igor Zubkov написал(a): > А для поддержки транзакций, можно сделать в /i/S/ какой-нибуть каталог в > который будут ложить маинтейнеры пакеты на сборку. Мне это представляется > как "transaction", в котором будут находится каталоги для каждого > маинтейнера (возможно там ещё будут ещё подпапки, вдруг маинтейнеру > захочется сделать несколько транзакций). Дальше, маинтейнер ложит пакеты в > эту папку на сборку. После уже полной закачки всех пакетов, говорит touch > .commit и заливает этот файл в эту же папку, подтвержая то, что транзакцию > можно начать. А если такой вариант: создать файл, например, с суффиксом .trans, куда по одной на строке запихнуть названия всех пакетов, которые бы надо было обработать в одной транзакции. Робот не начинает обработку перечисленных в этом файле пакетов до тех пор, пока или в incoming, или в Сизифе не появятся все указанные пакеты. Конечно, если пакеты уже в Сизифе, то не надо ничего пересобирать. Причём если из Сизифа можно потребовать наличие любого пакета, то в incoming должны попасть в транзакцию только свои пакеты. Если в incoming лежит требуемый пакет, но чужой, то задержать транзакцию до попадания чужого пакета в Сизиф. Что это даёт: Есть 2 мантейнера: один работает с библиотекой libfoo, другой с программами bar1 на основе библиотеки libfoo и bar2 на основе bar1. Оба заливают, но второй в своей транзакции указывает, что ему нужен для сборки определённый пакет, дабы не было сборки программы с предыдущей версией. Тогда второй создаёт сначала в incoming файл пусть info1.trans, куда вписывает: bar1-1.2.3.src.rpm bar2-1.1.0.src.rpm libfoo-2.0.2.src.rpm (ну или libfoo-2.0.2.i586.rpm) Так как библиотека не его, то система должна начать сборку только тогда, когда libfoo соберётся и окажется в Сизифе. Можно придумать не полные имена, а частичные, например, вида libfoo-2.0.0-*.rpm После успешной транзакции файл транзакции удалить. Выглядит несколько громоздко, но позволяет при необходимости определить очерёдность транзакций и не требует кучи каталогов. Просто у нас почему-то иногда проходит сборка со старыми библиотеками. -- С уважением, Епифанов Сергей