[sisyphus] A: Прошу тестировать доработанные sustemd и dbus

Alexey Shabalin a.shabalin на gmail.com
Чт Фев 18 17:55:07 MSK 2016


18 февраля 2016 г., 15:49 пользователь Aleksey Avdeev
<solo на solin.spb.ru> написал:
> 18.02.2016 02:26, Dmitry V. Levin пишет:
>> On Mon, Feb 15, 2016 at 01:06:23PM +0300, Alexey Shabalin wrote:
>>> 11 февраля 2016 г., 9:06 пользователь Aleksey Avdeev написал:
>>>> 10.02.2016 23:41, Aleksey Avdeev пишет:
>>>> ...
>>>>>
>>>>> 2. sysvinit-tmpfiles-0.1-alt0.M70T.1 (см.
>>>>> <http://git.altlinux.org/people/solo/packages/sysvinit-tmpfiles.git?p=sysvinit-tmpfiles.git;a=commit;h=56e0cca154df8e170016caf2c0542b252cee0091>)
>>>>> -- Поддержка tmpfiles для sysvinit.
>>>>
>>>>   В <http://git.altlinux.org/tasks/158607/> вариант для Сизифа:
>>>> sysvinit-tmpfiles-0.1-alt1 (см.
>>>> <http://git.altlinux.org/people/solo/packages/sysvinit-tmpfiles.git?p=sysvinit-tmpfiles.git;a=commit;h=55a1ee0c5e4a2c0f0eba0693ab641facb13c8abb>).
>>>
>>> Алексей, в задании #159059 новый systemd-229, в который добавлен ваш
>>> сервис tmpfiles, с небольшими моими правками.
>>
>> Там в пакет systemd-utils просочились %_initdir/tmpfiles и
>> %_sysconfdir/cron.daily/tmpfiles; если эти файлы не нужны
>> для systemd-only системы, то их надо убрать из systemd-utils.
>
>   По результатам экспериментов с sysvinit-tmpfiles у меня сложилось
> мнение, что наиболее простой вариант получения чистых systemd-only
> систем -- вынос поддержки sysvinit в отдельные подпакеты, например с
> названиями вида *-sysvinit (тогда на systemd-only системах их можно не
> ставить). Причины:

Нет, не надо придумывать никаких дополнительных пакетов вида *-sysvinit.

> 1. Для нормальной установки на систему под systemd, пакет содержащий
> %_initdir/<name> должен содержать и /lib/systemd/system/<name>.service.
> Иначе при установки пакета будут наблюдаться ошибки (см.
> <https://lists.altlinux.org/pipermail/sisyphus/2016-February/364737.html>).
Да, именно должен. И robocop обучен искать ошибки.


> 2. При этом симлинк вида /lib/systemd/system/<name>.service -> /dev/null
> к исправлении ситуации не приводит.

исправляет

> А симлинк на реальный service, вида
> /lib/systemd/system/<name>.service ->
> /lib/systemd/system/<realnamename>.service, приведёт к зависимости на
> пакет его содержащий, что не всегда допустимо.
Ничего не приведет ни к каким зависимостям, потому что эти симлинки и
цель должны быть в одном пакете. Это механизм alias, не надо его
использовать для чего-то другого.

> 3. В свете предыдущего пункта, исключения зависимости на пакет
> содержащий /lib/systemd/system/<realnamename>.service, пакету с
> %_initdir/<name> потребуется:
>
> а) обвить /lib/systemd/system/<name>.service как %ghost;
>
> б) иметь тригер, отслеживающий установку/удаление/наличие пакета
> содержащего <realnamename>.service и в зависимосте от этого
> создающего/удаляющего симлинк <name>.service -> <realnamename>.service.

Не надо придумывать лишние не нужные интелекты.

>   В общем, наиболее простой вариант:
>
> 1. Симлинк <name>.service -> <realnamename>.service пометить в пакет
> содержащий <realnamename>.service.
>
> 2. %_initdir/<name>, без <name>.service, в отдельный пакет.
>



-- 
Alexey Shabalin


Подробная информация о списке рассылки Sisyphus