From: Alexey Tourbin <at@altlinux.ru> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] Метарепозиторий Сизифа Date: Wed, 7 Nov 2007 10:01:48 +0300 Message-ID: <20071107070148.GQ24160@solemn.turbinal> (raw) In-Reply-To: <200711070851.09258@ruslandh> [-- Attachment #1: Type: text/plain, Size: 4056 bytes --] On Wed, Nov 07, 2007 at 08:50:59AM +0300, Хихин Руслан wrote: > Имеем зависимость: > I - между бинарными пакетами > важно при > 1 посроении дистрибутива в spt > 2 установки нового пакета в работающую систему > 3 включения в репозиторий нового или обновлённого пакета > > II - между бинарными пакетами и сборкой пакета (buildreq) > только в этом случае срашны циклические зависимости. > > III - между исходниками и пакетами (src.rpm в любом виде), которые > поступили на сборку и тем репозиторием, который уже есть. > Тут как разделящуюся боеголовка - из одного пакета может получиться > несколько, и одного из них достаточно, чтобы нарушить целостность > репозитория. > > Как я понимаю, вы пытаетесь свести всё к зависимостям типа I ? > А механизм ваш сейчас работает на выяснении зависимостей типа III. > Отсюда некоторое непонимание. Важнее для Сизифа зависимости типа III. Я веду мозговой штурм. Мы хотим сделать метарепозитарий, который содержит "необходимую и достаточную" информацию о пакетах. Он "отражает" прохождение пакетов таким образом, что, грубо говоря, можно "автоматически или полуавтоматически" судить, ухудшает каждый очередной пакет характеристики репозитария или нет. Если пакет ухудшает характеристики репозитария слишком подозрительно, то форкается бранч до разрешения всех противоречий. Иными словами, более эзотерически, мы не хотим автоматически увеличивать энтропию. В репозитарии автоматически разрешаются переходы только из одного достаточно целостного состояния в другое НЕ МЕНЕЕ ЦЕЛОСТНОЕ состояние. Но в противном случае система не должна быть слишком навязчивой -- в ней будут какие-то ручки, которые будут крутить люди. Мы хотим сделать структуру данных репозитария СИЗИФУС, которая позволяет вычислять некую весовую функцию ЦЕЛОСТНОСТЬ репозитария при прохождении каждого очередного пакета. Если ЦЕЛОСТНОСТЬ падает, то форкается бранч. Если ЦЕЛОСТНОСТЬ не ухудшатеся, пакет проходит автоматически (мёрж/commit типа fast forward). (Весовую функцию нужно понимать эзотерически. Она "помогает понять", но сама не нужна и скорее всего будет вредна, т.к. "не учитывает связи" и т.п.) Что должно храниться в этом репоизатрии? Мы хотим отказаться от src.rpm пакетов. В каждом src.rpm пакете есть список BuildRequires. На "алгебраическом" уровне нельзя предполагать, что это список был сформирован при помощи buildreq или как-то ещё. Значит, в метарепозитарии для каждого "исходного" пакета нужно хранить: 1) список BuildRequires as is; 2) транзитивное замыкание BuildRequires в той среде, в которой этот пакет был первоначально собран, т.е. список %name-%version-%release сборочного чрута. 3) список подпакетов, которые собрались; 4+) настоящие зависимости собранных подпакетов. Тогда становится возможным обнаружение смены сонейма. На этой структуре данных критерий смены сонейма можно сформулировать примерно так. Напомню, что есть две стадии: "пакет собрался" и "пакет проходит". На стадии "пакет собрался" критерий это изменился Provides определенного вида (lib*.so*). На стадии "пакет подходит" будет пересборка всех транзитивно зависимых пакетов. По окончании этой стадии критерий будет СИНХРОННАЯ смена Requires того же вида зависимостей, которые были учтены на первой стадии. > Возникают вопросы (чисто логически, не углубляясь в детали и конкретику) > - Как получить непротиворечивую транзакцию > - Какое время имеет смысл накапливать транзакцию > Требуются : > - Алгоритм включения поступившего пакета в имеющиеся транзакции > - Алгоритм создания транзакции > - Критерий готовности транзакции. > - Критерий устаревания транзакции. Вы уже обсуждаете ПОЛИТИКУ реализации. Вы хотите немало. Чтобы это сделать, нужно пока обсуждать БАЗОВЫЕ МЕХАНИЗМЫ, на основе которых эта реализация СМОЖЕТ работать. В частности, я выдвинул идею метарепозитария сизифа. Мозговой штурм сейчас касается того, что типа как бы всё это можно было устроить на уровне организации данных, чтобы желаемое стало более возможным. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2007-11-07 7:01 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-11-06 21:35 Alexey Tourbin 2007-11-07 5:23 ` Alexey Tourbin 2007-11-07 5:50 ` Хихин Руслан 2007-11-07 7:01 ` Alexey Tourbin [this message] 2007-11-07 21:37 ` Kirill A. Shutemov 2007-11-07 10:16 ` Alexey I. Froloff 2007-11-07 10:38 ` Alexey Gladkov 2007-11-07 10:39 ` Alexey Gladkov 2007-11-07 10:43 ` Alexey Gladkov 2007-11-07 10:49 ` Alexey Gladkov 2007-11-08 17:42 ` Dmitry V. Levin 2007-11-08 18:38 ` Sergey Vlasov 2007-11-08 20:17 ` Dmitry V. Levin 2007-11-08 19:03 ` Alexey Tourbin 2007-11-08 19:20 ` Kirill A. Shutemov 2007-11-08 19:46 ` Alexey Tourbin 2007-11-08 19:23 ` [devel] bootstrap транзакции Alexey Tourbin 2007-11-08 21:20 ` [devel] Метарепозиторий Сизифа Dmitry V. Levin 2007-11-08 22:08 ` Alexey Tourbin 2007-11-08 22:30 ` [devel] git-репозитарий для логов сборки Alexey Tourbin 2007-11-08 22:48 ` Dmitry V. Levin 2007-11-08 23:28 ` Alexey Tourbin 2007-11-09 1:09 ` Dmitry V. Levin 2007-11-09 1:21 ` Alexey Tourbin 2007-11-09 2:06 ` Alexey Tourbin 2007-11-08 22:38 ` [devel] Метарепозиторий Сизифа Dmitry V. Levin 2007-11-08 23:04 ` Alexey Tourbin 2007-11-09 1:06 ` Alexey Tourbin 2007-11-09 6:44 ` Kirill A. Shutemov
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=20071107070148.GQ24160@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