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