ALT Linux Team development discussions
 help / color / mirror / Atom feed
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 дистрибутивов тянет нас назад, и еще очень долго
> будет тянуть.

А о каком именно наследии вы говорите?

-- 
   С уважением,
   Владимир Селезнев


  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