From: "Vladimir D. Seleznev" <vseleznv@altlinux.org> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] Изменения в сборочнице Date: Mon, 8 Oct 2018 20:44:24 +0300 Message-ID: <20181008174422.GD26730@portlab> (raw) In-Reply-To: <CA+qzenmcJtor8UwJZBixR6xi2Esw__WPED1RcBJk8suGUOXzvQ@mail.gmail.com> On Mon, Sep 03, 2018 at 11:48:04AM +0300, Alexey Tourbin wrote: > 2018-09-03 10:00 GMT+03:00 Vladimir D. Seleznev <vseleznv@altlinux.org>: > > On Mon, Sep 03, 2018 at 04:38:22AM +0300, Alexey Tourbin wrote: > >> 2018-08-30 23:42 GMT+03:00 Vladimir D. Seleznev <vseleznv@altlinux.org>: > >> > Доброго времени суток! > >> > > >> > Не раньше завтрашнего вечера в сборочнице произойдут следующие > >> > изменения: > >> > > >> > * будет запрещено копирование пакетов в бранчи; > >> > * будет разрешена пересборка пакетов для Sisyphus без повышения релиза > >> > пакета с помощью команды rebuild. > >> > >> А почему будет запрещено копировать пакеты в бранчи? Потому что были > >> случаи, что скопированные пакеты не работают? Но ведь целый класс > >> пакетов, таких как 0ad-data.noarch, иммьюн к особенностям бранчей. > > > > Это правда, но мне видится корректным решением собирать пакеты в родном > > окружении, нежели копировать из чужого бранча. А если такой иммьюнный > > пакет не соберётся, то это явный признак, что что-то идёт не так. > > Ну значит некоторые пакеты все же копировать можно, но поскольку мы > наверняка не знаем, какие именно можно, а какие нельзя, то проще > запретить. Этот принцип действия называется "как бы чего не вышло", и > он мне не нравится тем, что отметает все рациональные построения по > части зависимостей как недостаточные. Кстати, и термин "родное > окружение" - он ведь не чисто технический, а с элементом метафоры. > Неохота досконально разбираться, что там происходит в каждом отдельном > случае, какие бывают классы случаев и т.п. Проще окрестить это > неродной средой и вздохнуть с облегчением. > > И все же как стратегия минимизации риска запрет копирования имеет > некоторый смысл. Но это крайняя мера, которая проистекает из крайнего > незнания и крайнего риска. Животное когда слышит, что в кустах что-то > шуршит, то оно не знает, притаился ли там лев, или же это просто > ветерок дует. Но с точки зрения выживания ему гораздо выгоднее > убежать, даже если это всего лишь ветерок (по-научному это называется > risk aversion as an evolutionary adaptation и т.п.). То есть еще и > цена ошибки сюда примешивается, в духе Pascal's wager. Но более > осмысленное управление рисками появляется только по мере прогресса > знания. А из одного только незнания ничего более умного, кроме как > бежать и запрещать, извлечь нельзя. Мне не нравится возможность прямого копирования пакетов без проверки результата, т.к. это противоречит идее воспроизводимости сборки. > >> Ну и знаете, бывали случаи, что и собранные в родной бранч пакеты не > >> работают. (Помню, во время сборки кончилось место на диске, и у > >> Виталика Кузнецова собралась Самба с утранкейтеным бинариком. В самом > >> конце его зарезал bad_elf_symbols. Но пасаран!) > >> > >> Другими словами, плохие линии аргументации опираются на anecdotal > >> evidence. Типа, а знаете что бывает? Один мужик ночью вышел на > >> улицу, а там НЛО прилетело и его забрало. Поэтому не надо по ночам > >> шастать по улице. > > > > А ещё бывают формально собранные корректно, без внешних вредящих > > факторов, но не работающие по самым разным причинам, которые наши > > проверка не отлавливают, и отловить которые в общем случае невозможно. > > Но эти всё не относится к копированию и не говорят в пользу того, что > > копирование пакетов — хорошая практика. > > Надо было систематизировать все случаи неработоспособности пакетов > после копирования. Без этого получается решение, основанное на > незнании. > > >> А также мне не нравится идея, чтобы в пакет прибивать гвоздями > >> информацию, для какого бранча он собран. > > > > Чем? > > Ох... Ну я ставлю под сомнение "стабильный бранч" как первичное > понятие. Это понятие вторичное, маркетинговое и подражательное Ред > Хату. А первичное понятие - это пакет coreutils, в нем лежит > программа /bin/cat, которая слинкована с libc.so.6 и т.д. > Спрашивается, к какому бранчу по классификации Линнея этот пакет > относится, к ALT SP 7 или к GOMIX 8? Куда он направлялся своим > сборщиком, и где его жизненное предназначение? Телеология на марше. Согласен с manowar@, это информация не о предназначении пакета, а о его происхождении. Она ровном счётом ни на что не влияет, равно как и, например, buildhost. Назначение этого тега информационное. > Представьте на секунду, что есть дистрибутив, который состоит из > "голых" пакетов %name-tar.gz, и устанавливаются они командой (cd / && > tar xf). Замнем также некоторые несущественные детали. В таком > дистрибутиве действительно единственной стратегией является жесткая > сегрегация подходящих и не подходящих под этот дистрибутив пакетов, > поскольку понятия информации о пакете нету, и восстановить > метаинформацию никак нельзя. Надо брать пакеты из правильной папки, в > которой они лежат! А иначе all bets are off. > > К понятию "стабильный бранч" есть много других претензий, и я даже не > знаю, стоит ли начинать и ввязываться в этот разговор. Например, Ред > Хат в мошенническим образом (по нашим понятиям) поставляет в свои > старые дистрибутивы новый тулчейн (он называется devtoolset-7, и > насколько я понял, он даже не собирается из исходников, а откуда-то > готовые бинарики копируются). Потому что дистрибутив со старым > тулчейном быстро девальвируется по объективным рыночным к нему > ожиданиям. Андрей Черепанов в телеграме кажется жаловался, что новый > софт часто не удается собрать в старые бранчи из-за старого > компилятора, прямо хоть новый gcc.tar.gz в firefox.src.rpm > заворачивай. Так. А тогда собственно возникает вопрос о ценности > бранча. В чем вообще ценность этого вашего стабильного дистрибутива > состоит, если в нем gcc.tar.gz нужно всегда иметь под рукой? Вопрос > этот я боюсь в конечном счете не технический. > > >> Надо было протоколировать все неочевидные случаи нарушения > >> работоспособности после копирования и докапываться до причины, что там > >> произошло, и дальше думать, как вынести релевантную информацию в > >> зависимость у пакета. Надо делать зависимости более достаточными в > >> плане описания работоспособности, а не искусственно сегрегировать > >> пакеты по предначертанному признаку. > > > > Если бы это было возможно в общем случае. Вы способны формализовать, что > > такое работоспособный пакет? > > Ну вот есть какая идея. При сборке пакета же выполняется "make test". > Надо научиться так перепаковывать этот "make test", чтобы он мог > выполняться в любой момент супротив установленного пакета в > хост-системе, а не токмо в дереве сборки. Тогда работоспособность > "make test" - это хороший признак работоспособности пакета в новом > окружении. Мысль интересная, но далеко не у всех пакетов есть тесты, и не все тесты обладают достаточным покрытием. Наверное, можно генерировать какие-нибудь %name-checkpackage, в которые записывать скрипт с содержимым секции %check, и выделить для них отдельную компоненту. Но сходу непонятно, когда надо запускать эти скрипты. После сборки каждого пакета — слишком дорого. Можно периодически на текущем состоянии репозиториев. > Но конечно это нельзя всё поставить на поток к завтрашнему дню. > Наследие sourсe-based дистрибутивов тянет нас назад, и еще очень долго > будет тянуть. А о каком именно наследии вы говорите? -- С уважением, Владимир Селезнев
next prev parent reply other threads:[~2018-10-08 17:44 UTC|newest] Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-08-30 20:42 Vladimir D. Seleznev 2018-08-31 6:19 ` Denis Medvedev 2018-08-31 7:26 ` Vladimir D. Seleznev 2018-09-11 11:35 ` Антон Мидюков 2018-09-11 14:54 ` Vladimir D. Seleznev 2018-09-11 15:34 ` Антон Мидюков 2018-08-31 7:17 ` Sergey Afonin 2018-08-31 7:37 ` Anton V. Boyarshinov 2018-08-31 8:55 ` Sergey V Turchin 2018-08-31 10:20 ` Anton V. Boyarshinov 2018-08-31 11:09 ` Grigory Ustinov 2018-08-31 11:39 ` Sergey V Turchin 2018-08-31 11:57 ` Anton V. Boyarshinov 2018-08-31 12:01 ` Sergey V Turchin 2018-08-31 12:34 ` [devel] робот, который будет убирать ubt-макрос (was: Изменения в сборочнице) Sergey V Turchin 2018-08-31 15:44 ` [devel] робот, который будет убирать ubt-макрос Grigory Ustinov 2018-08-31 12:51 ` Sergey V Turchin 2018-08-31 12:41 ` [devel] Изменения в сборочнице Dmitry V. Levin 2018-08-31 15:46 ` Grigory Ustinov 2018-09-01 14:22 ` Антон Мидюков 2018-08-31 11:43 ` Sergey V Turchin 2018-08-31 12:14 ` [devel] Binary package identity (was: Изменения в сборочнице) Sergey V Turchin 2018-08-31 13:05 ` Vladimir D. Seleznev 2018-08-31 13:14 ` Sergey V Turchin 2018-08-31 13:37 ` Vladimir D. Seleznev 2018-08-31 13:50 ` Sergey V Turchin 2018-09-03 1:38 ` [devel] Изменения в сборочнице Alexey Tourbin 2018-09-03 7:00 ` Vladimir D. Seleznev 2018-09-03 7:01 ` Anton Farygin 2018-09-03 8:48 ` Alexey Tourbin 2018-09-03 12:38 ` Dmitry V. Levin 2018-09-04 13:00 ` Paul Wolneykien 2018-09-04 15:21 ` Michael Shigorin 2018-10-08 17:44 ` Vladimir D. Seleznev [this message] 2018-10-08 18:00 ` Alexey V. Vissarionov 2018-09-03 9:04 ` Sergey Afonin 2018-09-03 9:10 ` Sergey Afonin 2018-10-22 6:52 ` Yuri Sedunov 2018-10-24 17:07 ` Vladimir D. Seleznev
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=20181008174422.GD26730@portlab \ --to=vseleznv@altlinux.org \ --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