bash-completion-2.1-r90

Title: bash-completion-2.1-r90
Author: Michał Górny <mgorny@gentoo.org>
Content-Type: text/plain
Posted: 2014-11-25
Revision: 1
News-Item-Format: 1.0
Display-If-Installed: >=app-shells/bash-completion-2.1-r90

Starting with app-shells/bash-completion-2.1-r90, the framework used to
enable and manage completions in Gentoo is finally changing in order to
properly follow upstream design. This has some important implications
for our users.

Firstly, the install location for completions changes to follow upstream
default. The completions enabled before the upgrade will continue to
work but you may no longer be able to enable or disable completions
installed prior to the upgrade. To solve this issue, the packages
installing completions need to rebuilt. The following command can be
used to automatically rebuild all the relevant packages:

$ find /usr/share/bash-completion -maxdepth 1 -type f \
	'!' -name 'bash_completion' -exec emerge -1v {} +

Secondly, the autoloading support introduced upstream removes the
penalties involved with enabling a great number of completions. This
allowed us to switch to an opt-out model where all completions installed
after the upgrade are enabled by default. Specific completions can be
disabled using 'eselect bashcomp disable ...'

The model change implies that all current selections done using 'eselect
bashcomp' can not be properly migrated and will be disregarded when
the relevant completion files are built against the new bash-completion
version. After rebuilding all the packages providing completion files,
you may want to remove the symlinks that were used to configure
the previous framework using the following command:

$ find /etc/bash_completion.d -type l -delete

Thirdly, we have solved the issue causing bash-completion support to be
enabled by default on login shells only. If you needed to explicitly
source 'bash_completion' script in bashrc, you can safely remove that
code now since system-wide bashrc takes care of loading it.

Lastly, we would like to explain that USE=bash-completion is being
removed from packages for the completions will be installed
unconditionally now. However, this will result in some implicit
dependencies being removed. Most specifically, users wishing to use
bash-completion will have to request app-shells/bash-completion
explicitly, e.g.:

$ emerge -n app-shells/bash-completion