On Saturday 05 November 2005 05:08, Thomas de Grenier de Latour wrote:
> On Sat, 5 Nov 2005 02:55:01 +0900
> Jason Stubbs <[EMAIL PROTECTED]> wrote:
> > gnome-*/* for package.keywords is already not supported.
> Sure, i know, but i think it's already an unfortunate limitation
> there, and i would rather not see it again in future new config
> files.

Having some config files follow one syntax and others following another 
becomes more confusing. I don't see a problem with changing or extending
the syntax; I just think it should be done across all config files.

> > There is already a (closed) bug asking for regex atom support.
> > This is essentially what you are asking for with the BUILD_PKGS
> > patch.
> That, plus:
>  - the "!atom" negation thing (which is different from "-atom"
> sure), because the ability to match sets of packages induces the
> need to exclude some too, if we want to allow accurate definitions
> of packages sets.
>  - the "system" thing, because its a subset which cant be defined
> with patterns or anything like that, and is useful (at least in the
> BUILD_PKGS case).
>  - the fact that it works sure, although i agree that adding a
> special case to the package.env thing to reach that goal with that
> approach too would be easy.
> > The difference is that you are completely breaking away from the
> > mostly standard configuration mechanisms portage currently
> > supports.
> Yes. The depatoms syntax was defined for *DEPEND variables and is
> perfectly fine there, but imho, for some completly different
> purposes, it is far from being optimal. Especially in conjonction to
> this ignominous best_match_to_list() thing.

I'm not sure what ignominous means. The best_match_to_list() just checks
which atoms match against a cpv...

> > The extension to per-package configuration beyond basic atoms is
> > fine, but it needs to apply everywhere.
> Everywhere? No, imo some stuffs are better defined with the strict
> depatoms syntax, while others would benefit of an extended syntax.

Everywhere meaning all configuration files.

> It's a matter of what kind of packages sets you want to talk about:
>  - strict depatoms are for single or multiple versions of a
> single package, and are perfect in *DEPEND strings, masks, emerge
> command-line, etc.

I don't see why masks should be excluded. As I said in the other thread,
I always run whatever is the latest packaged KDE. Being able to specify 
kde-base/* would be much easier than the current method of specifying 
individual atoms.

> > > Since being able to list several env file on a same line doesn't
> > > sounds like a must have feature to me, i would much prefer a
> > > package.env format of that kind:
> > >   <rule> [<rule> ...]    <envfile>
> > > where <rule> would be similar to what i've defined for
> > > BUILD_PKGS (with addition of full versioned dep atoms, which is
> > > a trivial change to my code).  And if a package happens to
> > > match the rules lists of several lines, then the corresponding
> > > env files would all be sourced, in the order of the said
> > > lines.  I can try to implement that if you agree on the idea.
> >
> > I don't see the difference in the end result. I can only see a
> > difference in perspective. Perhaps you could enlighten me on this
> > point?
> The difference is the ability to define accurate packages sets,
> which are the result of substractions, and thus needs severals
> sub-rules to be defined.

Ok. Although with package.env, it would be equally as useful to be able to 
specify multiple envs after a rule-set. Perhaps it should be
<rule> [<rule> ...] <separator token> <envfile> [<envfile> ...]

> > Rather than blacklist, I'd think that whitelisting is easier.
> What i thought first too, but won't work for ebuild-specifics
> variables (like LIRC_OPTS and a few other ugliness of that kind).

Actually, I meant whitelisting in documentation. Perhaps blacklisting would
be easier to document. Either way, I can't see much point in removing settings 
that will have no affect if they are documented to have no affect.

> > Stuff known to portage that is okay to per-package
> > --------------------------------------------------
> > FEATURES="buildpkg ccache distcc keeptemp keepwork noauto noclean
> > nodoc noinfo noman nostrip sandbox sfperms suidctl test userpriv
> > usersandbox"
> > USE
> Do you mean they already work with the patch in its current state,
> or that they could to work if some required changes are made?

Most operate only on the bash side and/or within doebuild (which should be 
getting a setcpv()'d settings object already) so should work. The rest just
require setcpv() to be called and/or relocated.

> Oh, and something i've just wondered about and i prefer to mention
> before i forget: what about USE_EXPAND variables? Are they handled
> fine with the current patch, or is the "variable -> USE flags"
> conversion done only once for all in portage?

There's a block of code near the end of config.__init__ that sets up 
USE_EXPAND. This block would need to be moved into regenerate().

Jason Stubbs
gentoo-portage-dev@gentoo.org mailing list

Reply via email to