[previously asked on anaconda-devel without seeing a response...] I may have asked this question before, but I don't remember seeing an answer that I grokked. Maybe I didn't ask the question correctly. My question is this: Suppose we have an install disk with a repo on it that specifies the following package sets (hypothetically) @SYSTEM = sbin sbin-utils sbin-diags devices core modsupport @DEVEL-BASE = gcc bin-utils gdb gprof gld ... I'd like to be able to come up with a compact notation for expressing what is on an installed system using the package sets with additions/ deletions. For example, suppose the running system has: ... sbin sbin-utils sbin-diags devices core gcc bin-utils gdb gprof gld gas ... then this could be represented as: @SYSTEM -modsupport @DEVEL-BASE +gas rather than just the complete list of packages (i.e. it may be more compact to say "all of SYSTEM except modsupport", rather than listing out all the individual components of that set). Why? I suspect that there might have been some package sets installed on an FC3 server that are no longer necessary, or that the composition of certain package sets has changed in FC5, so that if (for instance) gthumb has been replaced by eog in a certain package set, that when I install the package set it comes with the default packages for that distro. It also would be useful to know what had been removed from certain package sets (i.e. why modsupport was removed from the SYSTEM set). Is there an easy way to compute this? An easy way to do this might be to take an inventory of a system via "rpm -qa", and then parse comps.xml and see if each set has at least 2/3rds of its constituent elements present. If it does, then output the set name with a subtractive list of absence elements. Otherwise, list the elements individually (or simply skip them all together, and list them along with all remaining elements not in a set when all of the sets have been tested). Make sense? Are there tools to do this or that can be easily modified to do this? Thanks, -Philip