1 |
On 06/05/2015 23:01, »Q« wrote: |
2 |
> On Wed, 06 May 2015 12:44:16 +0300 |
3 |
> Nikos Chantziaras <realnc@×××××.com> wrote: |
4 |
> |
5 |
>> If that is the case, then in order to completely transition to the |
6 |
>> new system, you would have to re-emerge everything that installs |
7 |
>> bashcomp files. Also, delete all your bashcomp eselect files. The new |
8 |
>> system has everything enabled by default and eselect is used to |
9 |
>> actually disable bashcomp for all packages and whitelist the only you |
10 |
>> enable. This can cause problems if you have old and new files lying |
11 |
>> around. |
12 |
> |
13 |
> Thanks for this. I'm not the OP, but broken bash completion has |
14 |
> been bothering me for a while. Somehow I'd gotten the mistaken |
15 |
> impression that it was supposed to heal itself over time as the |
16 |
> programs that install bashcomp files were rebuilt with updates, without |
17 |
> me having deal with any cruft. |
18 |
> |
19 |
>> I think there was a news item on how to transition from the old to |
20 |
>> the new setup. No idea where to find it if you don't have it in |
21 |
>> "eselect news list" anymore :-/ |
22 |
> |
23 |
> At the time, I was on the lookout for such a news item and I never saw |
24 |
> one. Always possible that was my fault, but I really think there was |
25 |
> no such item. |
26 |
> |
27 |
> Also, if I've correctly understood what you wrote above, |
28 |
> <https://wiki.gentoo.org/wiki/Bash#Tab_completion> needs an overhaul. |
29 |
> (Conversely, if it doesn't need an overhaul, my understanding is still |
30 |
> faulty and I'll be back for some hand-holding!) |
31 |
> |
32 |
> |
33 |
|
34 |
|
35 |
There was a news item, I've pasted the whole thing here for you |
36 |
|
37 |
2014-11-25-bash-completion-2_1-r90 |
38 |
Title bash-completion-2.1-r90 |
39 |
Author Michał Górny <mgorny@g.o> |
40 |
Posted 2014-11-25 |
41 |
Revision 1 |
42 |
|
43 |
Starting with app-shells/bash-completion-2.1-r90, the framework used to |
44 |
enable and manage completions in Gentoo is finally changing in order to |
45 |
properly follow upstream design. This has some important implications |
46 |
for our users. |
47 |
|
48 |
Firstly, the install location for completions changes to follow upstream |
49 |
default. The completions enabled before the upgrade will continue to |
50 |
work but you may no longer be able to enable or disable completions |
51 |
installed prior to the upgrade. To solve this issue, the packages |
52 |
installing completions need to rebuilt. The following command can be |
53 |
used to automatically rebuild all the relevant packages: |
54 |
|
55 |
$ find /usr/share/bash-completion -maxdepth 1 -type f \ |
56 |
'!' -name 'bash_completion' -exec emerge -1v {} + |
57 |
|
58 |
Secondly, the autoloading support introduced upstream removes the |
59 |
penalties involved with enabling a great number of completions. This |
60 |
allowed us to switch to an opt-out model where all completions installed |
61 |
after the upgrade are enabled by default. Specific completions can be |
62 |
disabled using 'eselect bashcomp disable ...' |
63 |
|
64 |
The model change implies that all current selections done using 'eselect |
65 |
bashcomp' can not be properly migrated and will be disregarded when |
66 |
the relevant completion files are built against the new bash-completion |
67 |
version. After rebuilding all the packages providing completion files, |
68 |
you may want to remove the symlinks that were used to configure |
69 |
the previous framework using the following command: |
70 |
|
71 |
$ find /etc/bash_completion.d -type l -delete |
72 |
|
73 |
Thirdly, we have solved the issue causing bash-completion support to be |
74 |
enabled by default on login shells only. If you needed to explicitly |
75 |
source 'bash_completion' script in bashrc, you can safely remove that |
76 |
code now since system-wide bashrc takes care of loading it. |
77 |
|
78 |
Lastly, we would like to explain that USE=bash-completion is being |
79 |
removed from packages for the completions will be installed |
80 |
unconditionally now. However, this will result in some implicit |
81 |
dependencies being removed. Most specifically, users wishing to use |
82 |
bash-completion will have to request app-shells/bash-completion |
83 |
explicitly, e.g.: |
84 |
|
85 |
$ emerge -n app-shells/bash-completion |
86 |
|
87 |
|
88 |
-- |
89 |
Alan McKinnon |
90 |
alan.mckinnon@×××××.com |