From: Alexey Tourbin <at@altlinux.ru> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] поддержка пакетов в git Date: Tue, 30 Sep 2008 19:50:01 +0400 Message-ID: <20080930155001.GC6399@altlinux.org> (raw) In-Reply-To: <200809301755.11577.iv@altlinux.org> [-- Attachment #1: Type: text/plain, Size: 5059 bytes --] On Tue, Sep 30, 2008 at 05:55:11PM +0400, Ivan A. Melnikov wrote: > > У меня теория и модель несколько более размыты. Рассмотрим постулат > > теории B(S,C)->P, который описывает некий базовый способ преобразования > > символов. Интерпретация состоит в том, что функция B осуществляет > > сборку пакета S в среде C, а на выходе даёт собранные пакеты P. > > Короче, почти все соображения о том, чтобы "варить" пакеты и вообще > > о "стабилизации" и "перекладывании" являются неправильными, потому > > что они пытаются игнорировать базовый принцип действительности > > (преобразования исходников в собранные пакеты, с фиксацией параметров > > преобразования). > > Попробую возразить, а то такая дискуссия заглохла... > > Пакеты собираются для того, чтобы ими можно было пользоваться. К сожалению, > достаточно сложно формализовать набор условий, при выполнении которых пакет > может считаться полезным с этой точки зрения. Наиболее достоверным > свидетельством того, что пакетом можно пользоваться, на данный момент, на мой > взгляд, приходится считать тот факт, что им кто-то пользуется. > > С этой точки зрения пакет, пролежавший месяц в Сизифе, в среднем лучше, чем > пакет, только что собраный туда, несмотря на то, что последний собран в более > актуальной среде. > > Безусловно, такая точка зрения игнорирует Базовый принцип действительности, > однако не противоречит ему. Более того, становится ясно, что для формирования > бранчей перекладывание предпочтительнее пересборки. Был по крайней мере один серьёзный прокол с перекладыванием пакетов (где-то год назад): пакет amarok при перекладывании из Сизифа в 4.0 стал вываливаться с undefined символами. И этот случай мог бы стать далеко не едиственным, потому что Си+плюс ABI -- вещь особенно хрупакая. Для просто Си ABI отслеживать несколько легче, но это всё ещё требует ручной работы, а надёжной гарантии на уровне зависимостям не даёт. Перекладывание "предпочтительнее" в смысле удобства, но не в смысле гарантии целостности. Собранный пакет P неявно ссылается на ту среду C (чрут), в которой он был собран. Принцип обратной совместимости можно формализовать через частичное упорядочение: в новой среде C1>C пакет P будет работать в силу обратной совместимости (что фактически и происходит при поступлении новых пакетов в сизиф; мы же не делаем полную замещающую пересборку всех пакетов, у которых обновилась сборочная среда). А перекладывание в бранчи означает прямо противоположную ситуацию: в более старой среде C0<C никакой обратной совместимости быть не может (само понятие обратной совместимости здесь неприменимо). Короче, с точки зрения модели мы можем надяться на обратную совместимость (что позволяет не делать полной замещающей пересборки пакетов), но не можем надеяться на "прямую" совместимость, которая позволяла бы перекладывать пакеты в более старую среду. Требование можно расслабить для noarch пакетов, потому что для них невозможны проколы на уровне ABI вроде случая с amarok. Правда, можно придумать нежелательные ситуации и для noarch пакетов (напр. lzma сжатие, и вообще какие-либо предварительные требования к среде). > Мне показалось, что Вы придаете очень большое значение тому, чтобы пакет > использовался в именно той среде, в которой он был собран. Я хотел бы > спросить, почему Вы так считаете, а также каким образом внедрение описанного > Вами в [ftp://ftp.altlinux.org/pub/people/at/protva-2008.pdf] метарепозитария > может изменить текущую ситуацию. Пакет может использоваться в другой среде, если позволяют зависимости. Так что я не бегаю за людьми и не объясняю им, можно им ставить пакеты вопреки хронологической последовательности или нет. Я говорю о базовом принципе формирования целостного репозитария. Нужно учитывать, какой пакет после какого собрался, и как это повлияло на всё остальное. Тогда мы имеем "историю коммитов" в репозитарии (вполне по аналогии с git) и можем отслеживать взаимное влияние между пакетами на очень тонком уровне. Сейчас репозитарий формируется лишь с довольно слабыми проверками целостности, а о взаимном влиянии между пакетами мы узнаем при еженедельной пересборке пакетов. Так что если пакет перестал собираться, а в его сборочной среде изменилось более одного пакета, тогда возникает двусмысленность: какой из обновившихся пакетов сломал сборку? А при правильном подходе разлом по сборке будет автоматически отслеживаться с минимальной возможной грануляностью (то есть на уровне пакета, если только не была затребована транзакция пачки пакетов). Идея метарепозитария (и соответствия его настоящему репозитарию) несколько сурова, но она правдива, и она даёт гарантию и полную настоящую картину развития репозитария. По-видимому, эта идея должна относиться только к базовому "репозитарию"/"бранчу" (напр. как сейчас 4.0). На основе базового репозитария можно сделать другие "пост-фактум репозитарии" (как school-4.0), где метарепозитарий не играет роли, а пакеты туда перекладывает вручную мистер Икс. [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2008-09-30 15:50 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-09-24 10:50 Dmitry Afanasov 2008-09-24 11:42 ` Dmitriy M. Maslennikov 2008-09-24 12:06 ` Dmitry Afanasov 2008-09-24 12:25 ` Dmitriy M. Maslennikov 2008-09-24 12:59 ` Damir Shayhutdinov 2008-09-24 12:47 ` Damir Shayhutdinov 2008-09-24 13:42 ` Dmitriy M. Maslennikov 2008-09-24 14:42 ` Damir Shayhutdinov 2008-09-24 15:52 ` Dmitriy M. Maslennikov 2008-09-24 17:14 ` Led 2008-09-24 17:15 ` Andrey Rahmatullin 2008-09-24 17:36 ` Anton Farygin 2008-09-24 17:38 ` Andrey Rahmatullin 2008-09-24 20:39 ` Anton Farygin 2008-09-24 18:06 ` Led 2008-09-24 20:40 ` Anton Farygin 2008-09-24 17:28 ` Damir Shayhutdinov 2008-09-25 8:29 ` Dmitriy M. Maslennikov 2008-09-25 9:22 ` Damir Shayhutdinov 2008-09-25 9:59 ` Dmitriy M. Maslennikov 2008-09-25 10:50 ` Damir Shayhutdinov 2008-09-25 11:21 ` Dmitriy M. Maslennikov 2008-09-25 12:13 ` Damir Shayhutdinov 2008-09-25 12:37 ` Timur Batyrshin 2008-09-25 12:44 ` Damir Shayhutdinov 2008-09-25 14:29 ` Dmitriy M. Maslennikov 2008-09-25 14:43 ` Timur Batyrshin 2008-09-25 15:19 ` Dmitriy M. Maslennikov 2008-09-25 15:33 ` Damir Shayhutdinov 2008-09-25 17:35 ` Alexey I. Froloff 2008-09-26 6:56 ` Dmitriy M. Maslennikov 2008-09-26 8:35 ` Alexey I. Froloff 2008-09-25 14:51 ` Led 2008-09-25 15:32 ` Dmitriy M. Maslennikov 2008-09-25 15:36 ` Damir Shayhutdinov 2008-09-25 16:10 ` Dmitriy M. Maslennikov 2008-09-25 16:11 ` Dmitriy M. Maslennikov 2008-09-25 15:31 ` Damir Shayhutdinov 2008-09-25 16:07 ` Dmitriy M. Maslennikov 2008-09-25 12:28 ` Aleksey Avdeev 2008-09-24 17:12 ` Led 2008-09-24 19:20 ` Vitaly Lipatov 2008-09-25 16:35 ` Alexey Tourbin 2008-09-25 16:53 ` Dmitriy M. Maslennikov 2008-09-25 17:23 ` Alexey Tourbin 2008-09-26 7:04 ` Dmitriy M. Maslennikov 2008-09-27 20:50 ` Alexey Tourbin 2008-09-27 20:57 ` Mikhail Gusarov 2008-09-27 21:13 ` Alexey Tourbin 2008-09-27 21:04 ` Mikhail Gusarov 2008-09-27 21:19 ` Alexey Tourbin 2008-09-27 21:29 ` Alexey Tourbin 2008-09-28 6:08 ` Dmitriy M. Maslennikov 2008-09-28 5:55 ` Kirill A. Shutemov 2008-09-30 13:55 ` Ivan A. Melnikov 2008-09-30 14:12 ` Mykola S. Grechukh 2008-09-30 14:37 ` Ivan A. Melnikov 2008-09-30 14:53 ` Mykola S. Grechukh 2008-09-30 15:59 ` Ivan A. Melnikov 2008-09-30 15:50 ` Alexey Tourbin [this message] 2008-09-30 16:10 ` Ivan A. Melnikov 2008-09-30 16:55 ` Alexey Tourbin
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=20080930155001.GC6399@altlinux.org \ --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