ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] git.alt build
Date: Thu, 19 Jun 2008 06:17:14 +0400
Message-ID: <20080619021713.GG17550@solemn.turbinal> (raw)
In-Reply-To: <20070418040558.GL5165@solemn.turbinal>

[-- Attachment #1: Type: text/plain, Size: 3438 bytes --]

On Wed, Apr 18, 2007 at 08:05:58AM +0400, Alexey Tourbin wrote:
> Мы обсуждали с AMorozov на канале, как организовать полную regression
> пересборку сизифа при прохождении каждого отдельного пакета.
> Естественно, пересобирать нужно не всё, а только те пакеты, которые
> как-либо зависят он вновь пришедшего пакета.
> 
> Точнее алгоритм regression переcборки такой:
> 
> 1) учитываем все подпакеты вновь пришедшего пакета;
> 2) инициализируем query-buildroot с учетом поступивших подпакетов;
> 3) если какой-либо подпакет входит в basesystem+rpm-build, т.е. встал
> в query-buildroot, тогда организуется низкоприоритетная очередь
> "пересобрать весь сизиф"; дальше это не рассматривается; точнее,
> содержимое query-билдрута не учитвается;
> 4) query-buildroot в который встал basesystem+rpm-build я далее называю
> query-песочницей, или просто песочницей.  Теперь нужно *каждый* src.rpm
> пакет пробить по песочнице в смысле print_uris, чтобы посмотреть, не
> встанет ли в buildroot при его сборке какой-либо вновь учтенный пакет;
> 5) если обнаруживается, что для сборки очередного src.rpm пакета в
> buildroot нужно поставить некоторые из только что учтенных пакетов,
> тогда src.rpm пакет является предметом regression пересборки.
> 
> В итоге должны пересобираться все src.rpm пакеты, такие что в buildroot
> у них встает один из вновь прибывших подпакетов.
> 
> Здесь есть две проблемы:
> 
> 1) query песочницы обходится порядка одной секунды.  Если пробивать по
> песочнице порядка 6000 src.rpm пакетов, то на каждый входящий пакет
> придётся квирить песочницу порядка двух часов.
> 
> Мы обсудили с AMorozov что алгоритм замыкания зависимостей находится в
> apt-get.cc; и что этот алгоритм, вообще говоря, не реентерабельный,
> поскольку модифицирует глобальную структуру данных Cache.  Т.е. не
> существует простого способа (в цикле) существенно снизить время запроса
> к песочнице.
> 
> 2) Ещё хуже.  На самом деле нет готовых src.rpm пакетов, по которым
> можно квирить песочницу.  Есть только git репозитарии.  Запуск gear и
> создание pkg.tar, который можно будет полноценно проквирить, обойдется
> ещё в какое-то время.  Хуже того, полноценный квиринг pkg.tar
> подразумевает постепенной наращивание билдрута (различие между
> BuildRequires и BuildRequires(pre)).  То есть, грубо говоря, нужно
> "начать собирать" пакет, чтобы понять, нужны ему какие-либо из вновь
> учтенных пакетов или нет.
> 
> То есть вопрос который мы обсуждали на канале стоит так: в сизиф прошел
> новый пакет (в виде подпакетов).  Какие теперь пакеты подлежат
> пересборке в тестовых целях (с новым пактом, в виде подпакетов)?
> 
> Как я уже писал, существует более простая модель.  Можно просто
> сохранять билдлог предыдущей сборки и проверять по этому логу что
> становится в билдрут.  Но это не разрешает проблемы Provides+Obsolets.
> Например пришел пакет libstdc++4.2, а в старых логах libstdc++4.1, тогда
> нет хорошего способа сказать, что вместо libstdc++4.1 теперь apt
> поставит libstdc++4.2, и результат может кардинально измениться.

В query-rebuild.git есть вариант, как можно проквирить *.src.rpm и
отсеить те из них, которые нуждаются в тестовой пересборке.  Это всё
равно занимает достаточно много времени (несколько минут), но не
паталогически много времени.  И здесь всё ещё нельзя отказаться от
src.rpm.  Чтобы отказаться от src.rpm нужно "кешировать" BuildRequires.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

  parent reply	other threads:[~2008-06-19  2:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-17  1:29 Alexey Tourbin
2007-04-17 13:31 ` Dmitry V. Levin
2007-04-18  4:05   ` Alexey Tourbin
2007-04-18  8:34     ` Sergey Vlasov
2007-04-20 21:44     ` Dmitry V. Levin
2007-04-20 22:00       ` Alexey Tourbin
2007-04-20 22:25         ` Dmitry V. Levin
2007-04-20 23:09           ` Alexey Tourbin
2007-04-20 23:18             ` Alexey Tourbin
2008-06-19  2:17     ` Alexey Tourbin [this message]
2008-06-19  2:18       ` Alexey Tourbin
2007-04-20 21:29   ` Dmitry V. Levin
2007-04-22 12:44     ` Alexey Gladkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080619021713.GG17550@solemn.turbinal \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git