On Tue, Dec 06, 2011 at 11:34:28PM +0100, Micha?? G??rny wrote:
> On Tue, 6 Dec 2011 14:27:48 -0800
> Brian Harring <ferri...@gmail.com> wrote:
> > Simple example of why sets.conf cannot be relied on:
> > 
> > # xorg sets
> > [x11-module-rebuild]
> > class = portage.sets.dbapi.VariableSet
> > world-candidate = false
> > variable = CATEGORY
> > includes = x11-drivers
> > 
> > Or using a literal overlay example:
> > [jmbsvicetto sets]
> > class = portage.sets.files.StaticFileSet
> > multiset = true
> > directory = ${repository:jmbsvicetto}/sets/
> > 
> > So for any non portage PM, we'd have to translate portage class name 
> > paths, know the actual signature of the target (VariableSet for 
> > example), and perfectly emulate that- also emualate the 
> > ${var:default} interpolation.
> 
> We wanted to replace that class with some global/generic vars, noone
> was interested in cooperating. Especially the-one-whose-name-shall-
> -not-be-spoken-aloud-or-he-will-come-with-his-metaphores.

It's not that people aren't interested in sets, it's that the 
proposal of trying to mutate sets.conf into something people 
would be happy with is fucked from the get go.  Keep in mind pkgcore 
actually already supports the basic format (minus a few tweaks, this 
is pkgcore's raw ini format for when people need to screw w/ the 
absolute guts of it).

It is *not* a good format for compatibility; adding a couple 
global/generic class names (basic schemas) still leaves open the 
ability for people to force PM specific class settings, getting us 
right back into the original criticism I leveled- specifically leaving 
PM's having to continually play "emulate the portage api".  It's a 
shitty situation to be in, and not one alternative PM authors are 
going to willingly walk into.

sets.conf isn't viable; this was known when it was originally forced 
in.

package.[setname] for a static list of atoms is a fairly good start; 
profiles could stack it (reusing existing stack logic), and 
repositories could grow metadata/sets/[name] as a base to use for 
example.

One thing people need to agree on /prior to implementing this/, is how 
overlays will interact here.  Can they mutate an existing set?  etc.

Other thing to note, we should probably use a different name than 
package.*; set.* is saner.  If we use package.*, a naive 
implementation could interpret package.use* as a set.

~harring

Reply via email to