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)
next prev 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