Frank Steinmetzger wrote:
> Hello fellows
>
> I’m trying to teach my bash to complete again. Ever since the upgrade from
> v1 to v2 a year ago, I’ve been missing out on it in parts. I had some time
> today, so I dug and found out that the central bash completion script that
> sits at /usr/share/bash-completion/bash_completion looks in ./completions.
> Eselect bashcomp looks in that same directory. However, there are a number
> of files in ./ which neither eselect nor bashcomp find. Most notably, many
> of Gentoo’s own completions such as eselect are located there:
>
> /usr/share/bash-completion $ ls completions | wc -l
> 729
> /usr/share/bash-completion $ eselect bashcomp list | tail -n 1
>   [729] zramctl *
> /usr/share/bash-completion $ ls
> bash_completion calibre-debug completions ebook-convert ebook-meta ebuild
> epkginfo eselect flaggie glsa-check java-config layman metagen pygmentize
> rc-service repoman tmux udisksctl browser-config calibre-server dbus-send
> ebook-device ebook-polish ekeyword epm euse gcc-config helpers kmod lrf2lrs
> pip quilt rc-status revdep-rebuild tree webapp-config calibre calibre-smtp
> distcc-config ebook-edit ebook-viewer emerge equery fetch-ebook-metadata
> genlop hg latexmk lrfviewer portageq rc rc-update splat udevadm youtube-dl
>
> Is this a bug? Or a misconfiguration? Thanks for any hint.


Well, I'm no expert on this but I recall there being a news item on this
a while back.  Did you miss it?  Here it is if you did.



2014-11-25-bash-completion-2_1-r90
  Title                     bash-completion-2.1-r90
  Author                    Michał Górny <mgo...@gentoo.org>
  Posted                    2014-11-25
  Revision                  1

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



Maybe you need to follow some part or all of that to get things back on
track????  I haven't had any trouble with mine here tho. 

Dale

:-)  :-) 

Reply via email to