Red Hat Bugzilla – Bug 709647
Install bash-completion by default
Last modified: 2011-07-31 08:49:10 EDT
Title says it all. I think it would be good to have the bash-completion package on default installs. It's very lightweight (197kB packaged), incredibly handy, and most users won't figure it out by themselves.
When I switched from Ubuntu, I really missed autocompletion, and I didn't imagine the package existed and I just needed to install it, because that's so logical to me it would be installed by default.
I'm filing the bug in bash-completion because I don't really know where's the right place to request this (anaconda?), and anyway feedback from maintainers is likely to be useful.
I'm guessing "distribution" is the right Component, since it's not a bug in a specific package, but a question of what packages should be in a default install.
Having it filed against bash-completion is fine with me, I know where to make the changes for this to happen, and I do think it's a good idea.
However choosing the appropriate group is not entirely trivial. For bash-completion to be installed by default it would need to be in a group that is installed by default, and installed by default in it. The latter part is easy, but the former needs some thought.
IMO this boils down basically to a choice between admin-tools and base. admin-tools does not sound appropriate because bash-completion is not an admin tool, and the description of base is "This group includes a minimal set of packages. Useful for creating small router/firewall boxes, for example.". I don't think bash-completion conflicts with that description, but I'll need to find a forum somewhere to discuss the change or find documentation whether I can just go ahead and do it.
bash-completion is currently in the system-tools group as optional (not installed by default even if the group is installed) and system-tools is not installed by default, but as a first step I've changed bash-completion to be installed by default within that group for F-16.
Discussion started on devel list.
Cool, thanks for the quick feedback!
Maybe base isn't as bad a choice as it sounds: when you set up a router, you'll likely login via SSH to it, in which case having completion just like on your full system is nice. Though I admit it might not be a good idea to add a few kB on such systems...
I don't personally see base as a bad choice either, but messing with minimal setups is something that people tend to have strong opinions on so I wanted to discuss it a bit first. There have been no replies to my mail yet, and unless someone yells in a few days or I find that bash-completion has missing dependencies that would pull in more stuff in base, I'll go ahead and add it to base as default for F-16+. I don't think it's likely to annoy people, but the ones who are annoyed can always just uninstall it.
Please do not do this before solving
what bash_completion does is very ugly and slow.
It's possible that that code will go away before F-16 is out. But while I agree that it is ugly, it is undeniably functional and I don't think it's slow enough (no numbers have been posted BTW, and the posted patch introduces at least one regression) to block the package from being installed by default even in its current form.
How much is bash-completion changing the default bash completion? Is there any list of completions (upstream?)? I don't want to see that this change will break current completions. Anyway, I would to stay in CC, so I can track when this will be (or won't be) in Fedora by default.
I don't think a list of completions in bash-completion exists, but you can get a picture of it by looking for "complete" lines in bash_completion, completions/Makefile.am, and completions/* to find out cases where a single snippet installs completions for several commands.
Regarding how much it changes bash's default completions depends on the command. For some commands it just filters the filenames offered as completions, for others it does much more. I believe bash by default pretty much blindly offers file and dirname completions for everything which makes no sense for a lot of commands, but users can always force that behavior by hitting Alt+/ instead of tab if they prefer it.
The feedback on -devel was about 50-50 positive and negative and those who posted -1's have not followed up on my several requests for more information (no specifics, no bugs filed). Since it was 50-50 on a devel list and this package is most useful for less experienced users than those following devel, I count that as a positive net result and have now added bash-completion to the "base" group as default for F-16+ in git.