[devel] Shell completions policy

Alexey Shabalin a.shabalin на gmail.com
Сб Ноя 27 00:30:54 MSK 2021


> nvme - Core nvme tools
> * Tue Jul 13 2021 L.A. Kostis <lakostis на altlinux> 1.14-alt1
> - Split shell completions into subpackages.

Всем привет.
Мне кажется лишним вырезать completions файлы из основного пакета.
- Весят они не много
- Работают только если установлен основной пакет bash-completion.
Другие shell, типа zsh, fish и ставят ради того, что бы completion
работали из коробки :)
- зависимость на bash-completion не порождают

Я предлагаю следующие правила:
- Паковать completion файлы вместе с основным пакетом (не делать подпакетов)
- Упаковывать в /usr/share (/etc для администратора)
- Не указывать зависимость на bash-completion или другие shell (zsh, fish)
- Только bash-completion должен владеть директориями
%_datadir/bash-completion/completions и %_sysconfdir/bash_completion.d

Надо запретить, кроме bash-completion содержать
%dir %_sysconfdir/bash_completion.d
%_sysconfdir/bash_completion.d (%_sysconfdir/bash_completion.d/* - можно)
%dir %_datadir/bash-completion/completions
%_datadir/bash-completion/completions (%dir
%_datadir/bash-completion/completions/* - можно)

В основном эти каталоги упаковывают чтобы не было предупреждения на
сборочнице, что этот каталог никому не принадлежит. С этим
предупреждением надо либо что-то сделать (например упаковать каталоги
в пакет bash, а не в bash-completion), либо смириться.

Получается, что кому нужны completion, то нужно установить
bash-completion (или другие shell - zsh, fish), и все дополнительные
completions из других пакетов заработают автоматически. Кому не нужно
- не устанавливают bash-completion.

Сейчас я вижу следующие проблемные пакет:
Пакеты владеющие /etc/bash_completion.d
freeipa-client
hub
ninja-build
openscap-scanner
ploop
bash-completion-source-highlight
drbd-utils-bash-completion
python3-module-neutronclient
rinse
salt-master
xen-tools

Пакеты владеющие /usr/share/bash-completion/completions
ethtool
flatpak
guestfs-tools
herbstluftwm
libguestfs
lxc-core
nnn
pcp
powertop
tio
unar
clufter-cli
driverctl
maven
rpmdevtools

Подпакетов completion осталось совсем немного:
bash-completion-cmake
drbd-utils-bash-completion
bash-completion-fzf
bash-completion-gammu
bash-completion-mercurial
bash-completion-mpv
bash-completion-nvme
bash-completion-source-highlight
bash-completion-util-linux
bash-completion-xss-lock


-- 
Alexey Shabalin


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