comps discussion at fudcon and the future

Josh Boyer jwboyer at gmail.com
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.
>
>Remember:
>
>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
>installed.

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.

josh




More information about the devel mailing list