comps discussion at fudcon and the future

Josh Boyer jwboyer at
Wed Jan 14 21:32:57 UTC 2009

On Wed, Jan 14, 2009 at 04:12:30PM -0500, seth vidal wrote:
>On Wed, 2009-01-14 at 16:08 -0500, Josh Boyer wrote:
>> On Wed, Jan 14, 2009 at 02:51:52PM -0500, seth vidal wrote:
>> >
>> >On saturday at fudcon we had a small talk (meaning there were only 4 of
>> >us there: Jeroen, Jeremy, James, and Me) about the future of comps and
>> >what we need.
>> >
>> >We came up with a fairly radical departure that will take some work to
>> >implement and probably won't land for F11 but it is worth discussing a
>> >bit now. Please read through the whole thing before jumping all over it.
>> >
>> >
>> >Problems we see:
>> >- browsing packages is a difficult problem when you have 10000+ pkgs.
>> >- comps has a lot of meanings and it is not obvious what they all are/do
>> >- conditional pkgs (which provide a way of saying "install pkgX only 
>> >  if pkgY is installed) are several colors of doom b/c they aren't a 
>> >  dependency relationship and creates clutter on systems.
>> >- users expect groups to be more persistent on their systems and to act
>> >  more like pkgs (ie: yum update should update groups, too)
>> >- optional/default/mandatory pkgs are confusing and not useful to most
>> >  people - the types are only useful when browsing, not when installing.
>> >
>> >
>> >We're still going to have a comps/groups file in the metadata but we'll
>> >be removing package types. If a package is a member of a group then
>> >that's it. It's in the group.
>> >
>> >When someone goes to install the group: 'yum groupinstall
>> >mygroup-of-fun' or 'yum install @mygroup-of-fun' then yum will grab the
>> >comps/groups file from each repo, look if the group you're requesting is
>> >there. If so it will create a metapkg rpm (a package containing only
>> >requirements) on the packages that exist in the repositories that are
>> >listed in that group. Then it will depsolve and install that pkg. The
>> >package name will be @mygroup-of-fun. The package version will be a hash
>> >of the contents of the package along with a timestamp. It needs to be
>> >timestamp-based so the version is increasing so we can 'update' these
>> >pkgs.
>> >
>> >We'll make sure that yum knows about @pkgs to be looked up against the
>> >comps file (which should be  significantly smaller now).
>> Bear with this question, but...
>> I often find myself doing "yum install <some group>" and messing around
>> with that a bit.  Then I typically find that I only really want 1/2 the
>> group or something.
>> With the metapkg installed, won't I have to yum remove that in order to
>> remove any individual packages from in that group?  If so, will yum go
>> into a depsolving erasure spree and try to remove the whole group
>> instead of just the package or two I listed?
>No, not if the remove-with-leaves plugin is not installed.
>yum install foo
>foo requires bar
>so bar is installed.
>yum remove foo
>only foo is removed. bar stays, unless you have remove-with-leaves

Ok, but if group-metapkg has Requires on all the packages in the
group, then won't:

yum remove foo-is-part-of-group

hit the Requires on group-metapkg and have yum try to remove it,
along with everything else?

I'm very dense, so maybe I'm misunderstanding how the metapkgs
are built.


More information about the fedora-devel-list mailing list