Bug 37352

Summary: Конфликт с systemd-utils
Product: Sisyphus Reporter: Антон Мидюков <antohami>
Component: systemd-utilsAssignee: Alexey Shabalin <shaba>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P3 CC: iv, jqt4, legion, mike, shaba, zxwarior
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 33000    

Description Антон Мидюков 2019-10-18 14:37:57 MSK
Из-за коммита:
http://git.altlinux.org/gears/s/systemd.git?p=systemd.git;a=commitdiff;h=30c28ce9e6d8d006c81b6bbecaf6423a08d8f3f5;hp=060cea49f5f2514e85aa3fab168830059f27e561

Невозможно установить bash-completion-elogind
Конфликтующий файл:
/usr/share/bash-completion/completions/loginctl

В качестве решения предлагаю loginctl переименовать в eloginctl.
Сейчас /usr/share/bash-completion/completions/loginctl/eloginctl является симлинком на /usr/share/bash-completion/completions/loginctl. Так что превращение симлинка в файл вызовет проблемы при обновлении. Потому необходимо выставить конфликт с предыдущими версиями у bash-completion-elogind.

Но лучше пойти ещё дальше и включить bash-completion-elogind в elogind по аналогии с systemd-utils, так как bash-completion весит копейки и никаких зависимостей не тянет. Не забыв выставить конфликт с bash-completion-elogind.
Comment 1 Michael Shigorin 2019-10-18 14:54:03 MSK
Так понимаю, ты собирался повесить на bash-completion-elogind.
Comment 2 Антон Мидюков 2019-10-18 15:20:15 MSK
(В ответ на комментарий №1)
> Так понимаю, ты собирался повесить на bash-completion-elogind.

Да. Но, если подумать, то лучше решать проблему в systemd.
Всё-таки /usr/share/bash-completion/completions/loginctl не обязаны быть идентичными для elogind и systemd.
А потому правильным решением будет перенести /usr/share/bash-completion/completions/* из systemd-utils в systemd-services, где в основном и находятся утилиты, для которых предназначены bash-completion. А главное не нужно порождать ещё один конфликт.

Потому перевешиваю обратно на systemd-utils.
Comment 3 Speccyfighter 2019-11-01 15:35:47 MSK
(В ответ на комментарий №2)
> (В ответ на комментарий №1)
> > Так понимаю, ты собирался повесить на bash-completion-elogind.
> 
> Да. Но, если подумать, то лучше решать проблему в systemd.
> Всё-таки /usr/share/bash-completion/completions/loginctl не обязаны быть
> идентичными для elogind и systemd.
> А потому правильным решением будет перенести
> /usr/share/bash-completion/completions/* из systemd-utils в systemd-services,
> где в основном и находятся утилиты, для которых предназначены bash-completion.
> А главное не нужно порождать ещё один конфликт.
> 

Пакет apt-conf-ignore-systemd предназначен для блокирования установки пакетов systemd{,-services,-sysvinit} в системы на sysvinit.

И если /usr/share/bash-completion/completions/* из systemd-utils

# rpm -ql systemd-utils | grep bash-completion | wc -l
24

# rpm -ql systemd-utils | grep completions | grep localectl 
/usr/share/bash-completion/completions/localectl

перенести в systemd-services, то при наличии apt-conf-ignore-systemd в системе на sysv, apt заблокирует установку systemd-services в систему на sysv и конфликт не возникнет.

При этом systemd-services в конфликтах elogind, - или sysv или systemd:

# apt-cache show elogind | grep ^Conflict
Conflicts: ConsoleKit2, ConsoleKit2-x11, systemd, systemd-services
Comment 4 Repository Robot 2019-11-06 06:11:31 MSK
systemd-1:243-alt4 -> sisyphus:

Tue Nov 05 2019 Alexey Shabalin <shaba@altlinux> 1:243-alt4
- move completions to systemd-services (ALT #37352)
- group add vmusers in pre for udev package (ALT #37200)
Comment 5 Michael Shigorin 2019-11-06 20:18:15 MSK
Лёш, спасибо!