Yum Groups as Objects
Change the default yum configuration from group_command=compat to group_command=objects.
- Name: James Antill
- Email: email@example.com
- Targeted release: Fedora 19
- Last updated: 2013-01-25
- Percentage of completion: 99%
Currently yum groups work as a simple substitution, so "yum group remove foo" works as though you took every package from foo and passed it to "yum remove". This tends to not be what users expect, for example "yum group install kde-desktop" and then "yum group remove kde-desktop" will end up removing packages (like abrt-desktop). This feature changes that so that groups are installed as real objects, meaning that when a user does "yum group install foo" yum will mark that the packages from foo are being installed (as before) but also that a group called foo is being installed and that those packages are installed because of it. Later if the group is removed, yum will remove the group and only those packages that were installed because of the group install/upgrade commands.
Benefit to Fedora
Users will be able to run "yum group install foo" and "yum group remove foo" and it will do what they expect much more often (no extra packages will be removed).
The only work that needs to be done is changing the configuration, all the code behind the feature is in F18.
How To Test
You can test it in Fedora 18 with "yum-config-manager --save --setopt=group_command=objects" ... or even just passing --setopt=group_command=objects to yum for every command.
To test with a rough automatic conversion from what yum thinks is happening now you can run: "yum groups --setopt=group_command=objects mark-packages-sync"
The main changes will be to anyone running "yum group install/remove", and that the output to "yum group list/info" will be dependant on the state stored.
However "yum upgrade" will now upgrade the installed groups. This means that if you "yum group install foo" and later a new package is added to the foo group "yum upgrade" will install the new package and mark it as being part of the foo group (and thus. a subsequent "yum group remove foo" will remove it).
I'm not aware of any significant testing on any layers using yum, so:
We can change the configuration default back to compat.
- man yum
- Installing groups with yum or anaconda (etc.) will now store information and use that information later for group remove/list/info commands. Also "yum upgrade" will automatically install any new packages for an installed group, as they are added to the group.