ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: "Evgeny Sinelnikov" <sin@altlinux.ru>
To: "ALT Linux Team development discussions" <devel@lists.altlinux.org>
Subject: Re: [devel] Персональная собиралка Сизифа
Date: Wed, 7 May 2008 03:47:02 +0400
Message-ID: <921f6bb40805061647o396f07e4n2e4ed55fc441b2f8@mail.gmail.com> (raw)
In-Reply-To: <20080506224842.GA17580@wo.int.altlinux.org>

2008/5/7 Dmitry V. Levin <ldv@altlinux.org>:
> On Wed, May 07, 2008 at 02:40:16AM +0400, Wartan Hachaturow wrote:
>  > 2008/5/7 Alexey Gladkov <legion@altlinux.ru>:
>  > >  Раз это не сложно, то расскажи как узнать из какого git репозитория
>  > > собирасется пакет FooBar, при условии что из одного репозитория может
>  > > собираться не один пакет и то что имена пакетов и репозиториев не всегда
>  > > совпадают. Меня интересует альгритм поиска соотвествия. Я такого альгоритма
>  > > придумать не могу.
>  >

Я сейчас как раз нахожусь на стадии формализации процесса сборки
пакетов. При этом я ввёл ряд ограничений... Прежде всего это относится
к переходу от использования src.rpm-пакетов, в качестве первичного
источника, к gear-репозиториям. То есть сборка свалки из
src.rpm-пакетов сводится к предварительному импортированию этих
пакетов в git. Благо git.alt/archive делается путём gear-srpmimport...
При этом отпадает необходимость в излишней эвристике. Насчёт git
задано одно ограничение - сборка учитывает не теги, а выбранную
ветку... её обновление - означает необходимость пересобрать пакет.

Собиралка предполагает использовать gear --hasher для замыкания
сборочной среды, на выбранном репозитории. Особенность gear по сборке
src.rpm-пакета в chroot'е является здесь существенным моментом, хотя
это и приводит в к тому, что BuildRequires(pre) начинает требоваться
то там, то тут...

Суть собиралки вобщем-то проста... указывается соотвествие между
пакетами и именами мэйнтейнеров, после чего некий скрипт выполняет
вытягивание, на основании этих правил, заданной ветки из
соотвествующих репозиториев и выполняет сборку... После сборки
запоминается коммит, чтобы не выполнять в следующий раз повторную
сборку.

Для бинарных пакетов предполагается, что результат сборки является не
только функцией исходного пакета, но и того набора бинарных пакетов,
на котором собирается исходный. Поэтому при сборке всегда добавляется
номер сборки %release.bld1, %release.bld2, ... Это унифицирует процесс
пересборки...

В общем пока это только стадия формализации процесса сборки пакетов,
которая доведена, до необходимого минимума.

Скрипт называется autobuilder:
http://git.etersoft.ru/people/sin/packages/geet-autobuilder.git
Но он пока далёк от совершенства... К сожалению он настолько сырой,
что использовать его пока можно только для фиксированного набора
задач... Проблема также состоит в том, что многие пакеты не содержат
правильных зависимостей BuildRequires(pre), которые могут
потребоваться не только для вычисления nvr, но и, например, для
раскрытия макросов вида %get_version, указанных в зависимостях.

В этом плане меня интересует вопрос, существуют ли средства для
вычисления порядка сборки пакетов, если необходимо собрать несколько
взаимозависимых пакета? Как при этом принято поступать?

Кстати, наткнулся на то, что в kdelibs есть race на уровне генерации
заголовочных файлов и, в стандартной схеме сборки на многопроцессорной
или многоядерной машине. Поэтому этот пакет может собираться
"иногда"...

>  > У вас в rpm-мире вообще никогда ничего нельзя понять точно -- даже то,
>  > где кончается имя пакета и начинается версия по имени файла ;) Это я
>  > уже осознал.
>
>  В версии, релизе и архитектуре пакета не может быть дефисов, так что, если
>  имя файла пакета каноническое (не было переименовано для запутывания
>  следов), то имя, версию, релиз и архиткутуру пакета можно идентифицировать
>  однозначно по имени файла пакета.
>

Для этого можно, например, относительно легко воспользоваться
python-modules-rpm, который умеет парсить заголовки пакетов.

>
>  > Поскольку в данном случае речь идёт только об src.rpm'ах, то
>  > однозначное отображение между репозиторием и src.rpm установить можно,
>  > я полагаю.
>
>  В 90% случаев (число взято с потолка, но ситуацию отражает) можно.
>

-- 
Sin (Sinelnikov Evgeny)

  parent reply	other threads:[~2008-05-06 23:47 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-06 22:24 Wartan Hachaturow
2008-05-06 22:31 ` Alexey Gladkov
2008-05-06 22:40   ` Wartan Hachaturow
2008-05-06 22:48     ` Dmitry V. Levin
2008-05-06 23:06       ` Evgeny Sinelnikov
2008-05-06 23:47       ` Evgeny Sinelnikov [this message]
2008-05-07  8:17     ` Alexey Gladkov
2008-05-07  8:39       ` [devel] как найти актуальный gear-репозиторий пакета Dmitry V. Levin
2008-05-07  8:48         ` Alexey Gladkov
2008-05-07  9:00           ` Denis Medvedev
2008-05-07  9:53         ` Wartan Hachaturow
2008-05-07  9:57           ` Dmitry V. Levin
2008-05-07 10:10             ` Wartan Hachaturow
2008-05-07 10:39               ` Dmitry V. Levin
2008-05-07 10:04           ` Alexey Gladkov
2008-05-07 10:13             ` Wartan Hachaturow
2008-05-07 10:22               ` Alexey Gladkov
2008-05-11 18:58         ` [devel] [JT] /usr/bin/GET Michael Shigorin
2008-05-11 18:46           ` Andrey Rahmatullin
2008-05-23  6:49           ` Alexey Tourbin
2008-05-07  9:49       ` [devel] Персональная собиралка Сизифа Wartan Hachaturow
2008-05-07  9:54         ` Alexey Gladkov
2008-05-07 10:39           ` Evgeny Sinelnikov
2008-05-08 12:35         ` Alexey I. Froloff
2008-05-07  7:31   ` Michael Shigorin
2008-05-07  8:19     ` Alexey Gladkov
2008-05-07  7:49   ` Kirill A. Shutemov
2008-05-07  8:21     ` Alexey Gladkov
2008-05-07  8:26       ` Vitaly Ostanin
2008-05-07  8:58         ` Alexey Gladkov
2008-05-07  9:05           ` Dmitry V. Levin
2008-05-07  9:12             ` Alexey Gladkov
2008-05-07  8:44       ` Dmitry V. Levin
2010-01-23  1:12         ` Денис Смирнов
2010-01-23  9:59           ` Dmitry V. Levin
2010-01-24  2:04             ` Денис Смирнов
2010-01-25  6:40               ` Sergei Epiphanov
2010-01-25  9:02                 ` Денис Смирнов
2008-05-07 10:32       ` Kirill A. Shutemov
2008-05-07 10:33         ` Alexey Gladkov
2008-05-07 10:41           ` Dmitry V. Levin
2008-05-07 10:47             ` Alexey Gladkov
2008-05-07 10:49               ` Dmitry V. Levin
2008-05-07 10:58                 ` Alexey Gladkov
2008-05-07 11:04                   ` Dmitry V. Levin
2008-05-07 11:07                     ` Alexey Gladkov
2008-05-07 16:42       ` Alexey Voinov
2008-05-07 16:49         ` Dmitry V. Levin
2008-05-08 12:37     ` Alexey I. Froloff

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=921f6bb40805061647o396f07e4n2e4ed55fc441b2f8@mail.gmail.com \
    --to=sin@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