Bug 39444 - [PATHCH] [RFC] Собрать systemd-sysctl, systemd-tmpfiles и systemd-modules-load без лишних зависимостей
Summary: [PATHCH] [RFC] Собрать systemd-sysctl, systemd-tmpfiles и systemd-modules-loa...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: systemd-utils (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-12-16 01:28 MSK by Gleb F-Malinovskiy
Modified: 2021-02-04 20:37 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gleb F-Malinovskiy 2020-12-16 01:28:10 MSK
Периодически люди страдают, что в их системы с sysvinit (через используемые в startup программы) приезжает целый libsystemd-shared со всеми его зависимостями.

Есть два патча:
http://git.altlinux.org/people/glebfm/packages/..git?p=systemd.git;h=refs/heads/patch-link-some-progs-with-libsystemd-statically

Этот патч сделает эти три программы гораздо больше в смысле размера, но их (по идее) можно будет использовать и с systemd и с sysvinit.


http://git.altlinux.org/people/glebfm/packages/..git?p=systemd.git;h=refs/heads/patch-add-standalone-systemd-sysctl-and-systemd-modules-load

А этот патч (применяется с -Dstandalone-binaries=true) позволяет сделать отдельные версии этих трёх программ (с суффиксом .standalone) чтобы их можно было запаковать отдельно.
Comment 1 Gleb F-Malinovskiy 2020-12-16 01:37:34 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #0)
> Есть два патча:

У обоих идея одна и та же -- собрать эти программы с частями systemd статически, а с остальными библиотеками, как положено, динамически.
Comment 2 Alexey Shabalin 2020-12-16 20:14:39 MSK
Т.е. нужны отдельные:
- systemd-tmpfiles.standalone
- systemd-sysctl.standalone
- systemd-modules-load.standalone
Я правильно понял?

Первый патч я немного переделаю, по аналогии с link-systemctl-shared.
Только у меня сомнение, что первый патч вообще нужен, если для sysvinit будут подготовлены отдельные *.standalone. systemctl статический нужен потому, что вовремя обновления в системе на некоторое время могут оказаться libsystemd и systemd разных версий, а %post скрипты дергают systemctl, который в этот момент может оказаться нерабочим(если будет shared).
А вот systemd-sysctl, systemd-modules-load, systemd-tmpfiles вроде дергают из %post, хотя могут конечно. Особенно systemd-tmpfiles.

PS: еще надо filetrigger переписать, что бы на sysvinit использовать *.standalone утилиты.
Comment 3 Gleb F-Malinovskiy 2020-12-16 20:28:29 MSK
(Ответ для Alexey Shabalin на комментарий #2)
> Т.е. нужны отдельные:
> - systemd-tmpfiles.standalone
> - systemd-sysctl.standalone
> - systemd-modules-load.standalone
> Я правильно понял?
> 
> Первый патч я немного переделаю, по аналогии с link-systemctl-shared.
> Только у меня сомнение, что первый патч вообще нужен, если для sysvinit
> будут подготовлены отдельные *.standalone.

Моя мысль была в том, что эти патчи взаимоисключающие.
Т.е. либо собрать все эти программы статически (и не плодить вторых экземпляров), либо собрать вторые экземпляры, а обычные программы оставить собранными с libsystemd-shared .
Comment 4 Alexey Shabalin 2020-12-17 16:03:30 MSK
В сизиф ушла новая сборка systemd-247.2-alt1, где добавлены отдельные пакеты:
- systemd-modules-load-standalone
- systemd-sysctl-standalone
- systemd-sysusers-standalone
- systemd-tmpfiles-standalone

Если вам будет удобнее все эти команды в одном пакете, дайте знать, переделаю.

Предлагаю sysvinit адаптировать для их использования.
Тут надо подумать как лучше сделать, но думаю пользователи и разработчики sysvinit лучше справятся.

1) в fedora в rpm есть интересная фишка - RemovePathPostfixes: .standalone
Если есть возможность добавить её в наш rpm, то я адаптирую standalone пакеты под неё.

2) Либо в rc.sysinit на использовать *.standalone бинарники

3) Либо нужны симлинки (типа systemd-sysctl -> systemd-sysctl.standalone), тогда rc.sysinit можно не трогать.

4) так же не забудьте про filetrigger, которые сейчас есть в systemd-utils

5) после перевода sysvinit на использование standalone пакетов, я планирую смержить systemd-utils с основным пакетом. В отдельном виде он для sysvinit больше не нужет.


PS: это уже другая тема, её наверно стоит обсудить в рассылке.
Идея в том, что бы перевести создание системных пользователей в rpm пакетах на использование systemd-sysuser.
Comment 5 Alexey Gladkov 2021-02-01 14:13:24 MSK
# rpm --lastchange startup
* Ср янв 27 2021 Alexey Gladkov <legion@altlinux.ru> 0.9.9.11-alt1
- Use standalone versions of systemd utilities.