[devel] Bash completions packaging policy (Q: упаковывать отдельно?)
Vladimir D. Seleznev
vseleznv на altlinux.org
Вт Окт 1 15:08:17 MSK 2019
On Tue, Oct 01, 2019 at 01:23:44PM +0400, Ivan A. Melnikov wrote:
> On Tue, Oct 01, 2019 at 11:07:34AM +0300, Andrey Savchenko wrote:
> > On Tue, 1 Oct 2019 08:57:39 +0300 Alexey V. Vissarionov wrote:
> > > On 2019-10-01 06:59:06 +0300, Anton Farygin wrote:
> > >
> > > >> Я обратил внимание, что в некоторых пакетах bash completions
> > > >> упаковываны в /etc/bash_completion.d/, а в остальных — в
> > > >> /usr/share/bash-completion/completions/.
> > > > Точнее говоря - 98 пакетов держат bash-completion в /etc и
> > > > 93 в /usr/share
> > > >> Т.к. есть тенденция складывать настройки по-умолчанию в
> > > >> /usr/share/, а локальные — в /etc/, то может быть нам
> > > >> упаковывать bash completions только в
> > > >> /usr/share/bash-completion/completions/?
> > > > Здесь также, как и в случае с именами пакетов python-module - лучше
> > > > подготовить policy.
> > >
> > > И написать там про отдельные подпакеты для %name-bash-completion
> >
> > Даже в Gentoo bash-completion *не* управляются отдельным
> > USE-флагом за исключением редких случаев, когда они тянут
> > дополнительные зависимости. Слишком мелкие файлы не влияющие на
> > работу самого приложения и овчинка выделки не стоит. Кому очень
> > нужно фильтровать, используют INSTALL_MASK на все пакеты. Думаю, при
> > создании образов для embedded ты можешь делать аналогичный фильтр.
>
> Вот что-то такое и можно написать в policy про отдельные подпакеты
> для %name-bash-completion ;)
Только bash-completion-%name — в Альте префиксная традиция, а не
суффиксная :)
На самом деле хороший вопрос, стоит ли выделять bash completions в
отдельный подпакет. С одной стороны, мы хотели делать хорошо
гранулированную разбивку пакетов, хотя это не всегда и не всеми
мейнтейнерами поддерживается, и мне всегда было само собой разумеющимся,
что для completions надо поставить отдельный подпакет. С другой стороны,
есть два аргумента против:
1. Новым пользователям не очевидно, что completions упакованы отдельно.
На самом деле это слабый аргумент и больше относится к вопросу
документирования этой особенности альтосистем и изучения особенностей
новой системы пользователями.
Говорят, у нас с документированием плохо, и хотя возможно и не так, как
это кажется, какое-то количество тайных знаний у нас есть. Основные
особенности освещены тут [1], но тут только вскользь про саму разбивку
пакетов, а сама статья местами out of date: часть уже неактуально, много
чего можно дописать.
2. Практическая ценность.
Вот тут уже интереснее: я не смог обосновать для себя зачем нужно такое
разделение. Много места completions, как правило, не занимают, и обычно
не требуют дополнительных зависимостей. Более того, bash — default и
root shell, и при установке некого программного обеспечения довольно
естесственно хотеть функциональность completion'ов. В случае же
принципиального не использования completions пользователю необходимо и
достаточно отключить эту функциональность.
Возможно, стоит пересмотреть упаковку completions в отдельные
подпакеты. Например, упаковывать отдельно только при наличии
дополнительный тяжёлых зависимостей на них.
Ссылки:
[1] https://www.altlinux.org/Features
--
С уважением,
Владимир Селезнев
Подробная информация о списке рассылки Devel