ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <alexey.tourbin@gmail.com>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] I: glibc 2.32 && sisyphus snapshot publication skip
Date: Mon, 21 Dec 2020 16:41:52 +0300
Message-ID: <CA+qzenkjj_Q+Fdh0W6ihzFOrb5J3rHNdgEP0Lg6RiMCYLX061A@mail.gmail.com> (raw)
In-Reply-To: <20201221113408.GA8443@altlinux.org>

On Mon, Dec 21, 2020 at 2:34 PM Dmitry V. Levin <ldv@altlinux.org> wrote:
> > Если бы при
> > сборке openssh выполнялся полноценный тест (запустить sshd на высоком
> > порту и попробовать к нему подключиться), то пакет перестал бы
> > пересобираться. Но что-то не видно, чтобы в openssh.spec выполнялись
> > какие-нибудь тесты.
>
> Для начала мы планируем доделать make check в openssh, там есть некоторые
> заморочки с переносом тестов в qemu.
>
> Далее есть выбор из двух вариантов:
> - Запаковать openssh-checkinstall, а также glibc-checkinstall,
>   openssl-checkinstall, и т.д., добавив в них зависимости
>   на openssh-checkinstall.
> - Пересобирать openssh при каждом значимом изменении пакетов (если
>   меняется rpm identity), входящих в его сборочную среду, с публикацией
>   результата пересборки, если он меняется значимым образом (если меняется
>   rpm identity).

Второй вариант слишком радикальный. Он кагбе дезавуирует понятие
бинарной совместимости как подозрительное. Возможен даже более
радикальный вариант: намертво приклеиваться к версиям библиотек, от
которых зависит сборка (openssh-server будет требовать glibc-core =
%version-%release). Этим мы кагбе говорим: в такой комбинации точно
работало; будет ли работать в других комбинациях - бог весть, надо
пересобрать, чтобы убедиться. Конечно, с rpm такой трюк не пройдет,
потому что в системе может быть установлен только один glibc-core.
По-моему, Nix package manager реализует как раз такую идею: он клеет
намертво и умеет бесконфликтно устанавливать намертво приклеенные
библиотеки.

Я посмотрел, как устроены пакеты checkinstall. Немного странно, что
они складывают программы в /var и запускают их в %post. Но может так и
лучше (для запуска тестов не требуется entry point).

Как тогда это может работать? В репозитории есть несколько десятков
пакетов *-checkinstall. Для каждого из них сборочная система
поддерживает список пакетов в чруте. Отдельная стадия сборки задания -
вычисление списков для *-checkinstall. Следующая стадия - для тех
*-checkinstall пакетов, у которых меняется содержимое чрута,
выполняется дополнительный install test (устанавливается именно этот
foo-checkinstall пакет).

В общем, это дополнительная работа по поддержке checkinstall пакетов.
Они не обязательно должны полностью реплицировать 'make check': 'make
check' может выполняться долго, а foo-checkinstall желательно чтобы
устанавливался достаточно быстро.

Другое направление мысли - надо поднимать в чруте настоящий сервис
sshd.  На современных ядрах это можно делать без прав рута, через
kernel.unprivileged_userns_clone=1. Плюс в том, что этим проверяется
боевая конфигурация. Минус в том, что такие контейнеры разворачиваются
дольше, и готового минималистичного решения для этого скорее всего
нет. Еще одно направление мысли - надо тестировать обновление rpm -U,
а не установку rpm -i, и проверять, что sshd перезапустился, после
чего пробовать к нему подключиться.

* * *

А почему вообще в репозитории openssh старой версии - 7.9? В Федоре 33
версия 8.4.

Мужчина, вы не так давно писали, что у пакетов должен быть мейнтейнер,
а если мейнтейнера нету, то не надо такие суррогатные пакеты
направлять в основной репозиторий и т.п. Между тем, если бы робот
синхронизировал сборку openssh с Федорой, а в релисе у этой сборки был
знак подчеркивания, то дефекта с seccomp просто не возникло бы.

В ваших рассуждениях про мейнтейнеров есть bias: поскольку вы
стейкхолдер, то вы исходите из того, как должен быть устроен проект в
целом, какие у него цели и задачи, что суть правильно в отвлеченном
смысле и т.п.  К этому еще примешиваются конъюнктурные соображение:
дескать "мы же не дериватив", поэтому надо как-то сигналить городу и
миру, что мы автохтонная Русская ОС для ЭВМ и т.п.

Bias становится ясен, если принять более прагматичный взгляд конечно
пользователя. Многих пользователей Русской ОС заставляют ею
пользоваться, спуская ее сверху (в бюджетных организациях и т.п.). То
есть многие пользователи - не стейкхолдеры, им всё равно, как устроен
проект, есть ли у пакетов мейнтейнеры и т.п. Им только нужно, чтобы
всё работало - не хуже, чем в других дистрибутивах. Если в
дистрибутиве есть "импортозамещённые баги", то это ужасный bummer.
Если же баги такие как у всех, то bummer не такой ужасный.

Это приводит меня к мысли, что нужно активнее синхронизировать всю
пакетную базу с апстримом и с другими дистрибутивами. Если дистрибутив
отходит от типичного сочетания версий (openssh и glibc), то он берет
на себя дополнительные риски, и, хуже того, перекладывает их на
конечных пользователей.

  reply	other threads:[~2020-12-21 13:41 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-18 15:38   ` Gleb Fotengauer-Malinovskiy
2020-12-18 16:08     ` [devel] Inconvenient seccomp (Was: I: glibc 2.32 && sisyphus snapshot publication skip) Vladimir D. Seleznev
2020-12-18 16:15       ` Dmitry V. Levin
2020-12-18 18:48       ` Alexey Gladkov
2020-12-18 20:21         ` Andrey Savchenko
2020-12-18 21:17           ` Alexey Gladkov
2020-12-19 11:56     ` [devel] I: rpcsvc-proto-devel + rpcgen Dmitry V. Levin
2020-12-20 14:26       ` Антон Мидюков
2020-12-20 14:31         ` Dmitry V. Levin
2020-12-21  2:33     ` [devel] I: glibc 2.32 && sisyphus snapshot publication skip Alexey Tourbin
2020-12-21 11:34       ` Dmitry V. Levin
2020-12-21 13:41         ` Alexey Tourbin [this message]
2020-12-21 14:10           ` Vladimir D. Seleznev
2020-12-21 14:19           ` Dmitry V. Levin
2020-12-21 15:12             ` Anton V. Boyarshinov
2020-12-22  7:57         ` Anton Farygin
2020-12-22  8:52             ` Pavel Nakonechnyi
2020-12-22  9:10               ` Anton Farygin
2020-12-22  9:18                 ` [devel] libcap-ng Dmitry V. Levin
2020-12-22  9:41                 ` [devel] I: glibc 2.32 && sisyphus snapshot publication skip Yuri Sedunov
2020-12-22 10:16                     ` Anton Farygin

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=CA+qzenkjj_Q+Fdh0W6ihzFOrb5J3rHNdgEP0Lg6RiMCYLX061A@mail.gmail.com \
    --to=alexey.tourbin@gmail.com \
    --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