ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Arseny Maslennikov <arseny@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] [p11-release-mgmt] usrmerge action proposal
Date: Tue, 4 Jul 2023 16:11:37 +0300
Message-ID: <ZKQaiQGYiiXiWX6H@cello> (raw)
In-Reply-To: <ZKQaFPEN0qnNWGnz@cello>

[-- Attachment #1: Type: text/plain, Size: 4758 bytes --]

On Tue, Jul 04, 2023 at 04:09:40PM +0300, Arseny Maslennikov wrote:
> On Thu, Jun 22, 2023 at 02:35:37PM +0300, Arseny Maslennikov wrote:
> > Ждём ваших конструктивных ответов и встречных вопросов.
> 
> Одним из самых трудоёмких изменений, если не самым, станет usrmerge.
> В следующем письме я предложу предварительный план действий.

Предварительный план действий, выработанный с учётом реалий нашей
пакетной системы, выглядит так:
1) Определить, что слиянию с аналогами внутри /usr подлежат:

  /bin
  /lib
  /lib64
  /libx32
  /sbin

Надеюсь, я никого не забыл.

2) Тем или иным образом научить rpm создавать симлинк вида

  /bin/x -> ../usr/bin/x

..., если в пакете существует /usr/bin/x и Provides: /bin/x.
Аналогично для всех каталогов из списка 1.
Таким образом, на переходном этапе будет не нужно указывать в %files
пакетов все эти симлинки, чтобы потом их убирать, и пакеты продолжат
удовлетворять зависимостям на такие файлы.

Важно, чтобы сначала удалялся старый путь, как обычно при установке
пакета, а симлинк возникал после этой фазы.
2.1) Бекпортировать поддержку в p10.

3) Подготовить пакет filesystem версии 3: поместить в нём файлтриггер,
который проверяет, не состоят ли каталоги из списка 1 целиком из
симлинков внутрь /usr, и превращает такой каталог с симлинками в симлинк
на каталог.
Сценарий файлтриггера должен будет давать предельно ясную информацию и
диагностические сообщения на стандартные потоки. Нужно будет либо
положиться на static coreutils, либо очень осторожно обращаться с
обычными и dynamic linker.

4) Этот пункт, видимо, потребует содействия мейнтейнеров.
Заменить макросы, использующие старые каталоги (%_udevrulesdir,
%_tmpfilesdir и другие), и пересобрать с ними пакеты, что-либо
помещающие в эти каталоги.
Приближённое число затрагиваемых бинарных пакетов:

  % grep -E '^/(bin|lib[^/]*|sbin)/[a-z0-9_-]+' contents-index | 
    grep -vE '^/lib/(systemd|udev|sysusers.d|modules[^/]*|modprobe.d|security|tmpfiles.d)' | # exclude known places
    cut -f2 -d$'\t' | grep -v '^/' | # exclude path provides
    sort | uniq | wc -l
  528

Оценка дана по x86_64 + noarch. Исходных, конечно, будет меньше.

При обновлении на эти пакеты будет действовать правило 2, поэтому их
содержимое будет доступно.

Некоторые пакеты, например, vim-common, сейчас упаковывают разные
файловые объекты в /bin и /usr/bin; другие пакеты ставят файлы прямо
в %buildroot/bin. Их потребуется исправить руками. (Справедливости ради,
многие из них и так стоит обновить)

5) Этот пункт вступает в действие на каждой машине индивидуально при
обновлении её пакетов.
Файлтриггер из пункта 3 обнаруживает, что можно ввести симлинки, и
делает это, завершая процесс usrmerge на данной системе.

----
На текущий момент непонятно:
— есть ли не обозначенные выше пакеты, требующие пристального внимания;
— нужен ли особый подход к системам, применяющим overlayfs вблизи
охваченных путей /* и /usr/*.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-07-04 13:11 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-22 11:35 [devel] forthcoming p11: a call for requests and action Arseny Maslennikov
2023-06-22 11:52 ` Yuri Sedunov
2023-08-28 16:17   ` Yuri Sedunov
2023-09-25 10:34     ` Yuri Sedunov
2023-11-21  9:29       ` Yuri Sedunov
2023-06-25 11:14 ` Anton Farygin
2023-06-28 12:55   ` Dmitry V. Levin
2023-06-28 16:22 ` Andrey Savchenko
2023-06-28 17:35 ` Gleb Fotengauer-Malinovskiy
2023-06-30 16:00 ` Mikhail Efremov
2023-07-04 13:19   ` [devel] procps-ng-4.0 Arseny Maslennikov
2023-07-04 13:09 ` [devel] [p11-release-mgmt] usrmerge Arseny Maslennikov
2023-07-04 13:11   ` Arseny Maslennikov [this message]
2023-11-21 21:41   ` Sergey Y. Afonin
2023-11-21 22:13     ` Arseny Maslennikov
2023-07-07 19:27 ` [devel] forthcoming p11: a call for requests and action Alexey Shabalin
2023-07-08  6:56   ` Alexey V. Vissarionov
2023-07-08 11:52 ` Denis Medvedev
2023-07-08 12:17   ` Dmitry V. Levin
2023-08-16 17:48 ` [devel] forthcoming p11: FTBFS summary Arseny Maslennikov
2023-08-16 18:09   ` Arseny Maslennikov
2023-08-16 18:20     ` Anton Zhukharev
2023-08-24  7:33   ` Arseny Maslennikov
2023-08-24  8:06       ` Arseny Maslennikov
2023-08-24  9:47           ` [devel] I: possible double ncurses abi Arseny Maslennikov
2023-08-28  9:42             ` [devel] possible double ncurses abi: call for approvals Arseny Maslennikov
2023-08-28 10:45               ` Dmitry V. Levin
2023-08-28 11:30                 ` Dmitry V. Levin
2023-08-28 20:40                 ` Arseny Maslennikov
2023-08-29  6:56                   ` Dmitry V. Levin
2023-08-24  8:15       ` [devel] forthcoming p11: FTBFS summary Gleb Fotengauer-Malinovskiy
2023-08-24  8:16     ` Gleb Fotengauer-Malinovskiy
2023-08-24 12:29     ` [devel] python3 FTBFS Ivan A. Melnikov
2023-09-03 14:54       ` Daniel
2023-09-04  7:52         ` Ivan A. Melnikov
2023-08-31  9:50     ` [devel] forthcoming p11: FTBFS summary Arseny Maslennikov
2023-08-31  9:59       ` Dmitry V. Levin
2023-08-31 12:01       ` Anton Farygin
2023-09-07  9:44       ` [devel] forthcoming p11: FTBFS summary available at gitery Arseny Maslennikov
2023-09-07  9:56         ` Yuri Sedunov
2023-09-07 10:15           ` Arseny Maslennikov
2023-09-07 10:31         ` Aleksey Novodvorsky
2023-09-07 11:25           ` Arseny Maslennikov
2023-09-07 10:44         ` Aleksey Novodvorsky
2023-09-07 11:07           ` Arseny Maslennikov
2023-09-07 11:18             ` Sergey V Turchin
2023-09-07 10:49         ` Sergey V Turchin
2023-09-07 10:56           ` Arseny Maslennikov
2023-09-07 10:58             ` Sergey V Turchin
2023-10-18  8:20   ` [devel] I: forthcoming p11: FTBFS summary, more announcements Arseny Maslennikov
2023-10-31 15:45   ` [devel] forthcoming p11: FTBFS summary Arseny Maslennikov
2023-10-31 15:49     ` Arseny Maslennikov
2023-11-01  9:02       ` Sergey Bolshakov
2023-11-01  9:26         ` Arseny Maslennikov
2023-10-31 16:03     ` Aleksey Novodvorsky
2023-11-01  4:06     ` Andrey Cherepanov
2023-11-01  5:51       ` Ivan A. Melnikov
2024-02-04 21:25 ` [devel] [p11-release-mgmt] closing in, hopefully Arseny Maslennikov
2024-02-04 23:34   ` Grigory Ustinov
2024-02-05  1:39     ` Aleksey Novodvorsky
2024-02-05  5:51   ` Anton Farygin
2024-02-05  6:13     ` Andrey Savchenko
2024-02-05  8:01   ` Роман Алифанов
2024-02-05 23:13     ` Alexey V. Vissarionov
2024-04-26 17:11 ` [devel] forthcoming p11: пора чинить пакеты Arseny Maslennikov
2024-04-27 10:09   ` alexei
2024-04-27 10:35   ` [devel] " Sergey V Turchin
2024-04-27 14:12   ` [devel] " Anton Farygin
2024-04-30  3:42     ` Alexey V. Vissarionov
2024-04-30  6:24       ` Anton Farygin
2024-04-28 10:36   ` [devel] forthcoming p11: пора чинить пакеты: jq -> обновление valgrind Anton Farygin
2024-04-28 11:28     ` Anton Farygin
2024-04-30 18:02   ` [devel] forthcoming p11: пора чинить пакеты Arseny Maslennikov

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=ZKQaiQGYiiXiWX6H@cello \
    --to=arseny@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