Gentoo Archives: gentoo-portage-dev

From: Jason Stubbs <jstubbs@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [Bug 44796] Per package environment variables
Date: Sat, 05 Nov 2005 05:39:58
Message-Id: 200511051440.35506.jstubbs@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [Bug 44796] Per package environment variables by Thomas de Grenier de Latour
1 On Saturday 05 November 2005 05:08, Thomas de Grenier de Latour wrote:
2 > On Sat, 5 Nov 2005 02:55:01 +0900
3 >
4 > Jason Stubbs <jstubbs@g.o> wrote:
5 > > gnome-*/* for package.keywords is already not supported.
6 >
7 > Sure, i know, but i think it's already an unfortunate limitation
8 > there, and i would rather not see it again in future new config
9 > files.
10
11 Having some config files follow one syntax and others following another
12 becomes more confusing. I don't see a problem with changing or extending
13 the syntax; I just think it should be done across all config files.
14
15 > > There is already a (closed) bug asking for regex atom support.
16 > > This is essentially what you are asking for with the BUILD_PKGS
17 > > patch.
18 >
19 > That, plus:
20 > - the "!atom" negation thing (which is different from "-atom"
21 > sure), because the ability to match sets of packages induces the
22 > need to exclude some too, if we want to allow accurate definitions
23 > of packages sets.
24 > - the "system" thing, because its a subset which cant be defined
25 > with patterns or anything like that, and is useful (at least in the
26 > BUILD_PKGS case).
27 > - the fact that it works sure, although i agree that adding a
28 > special case to the package.env thing to reach that goal with that
29 > approach too would be easy.
30 >
31 > > The difference is that you are completely breaking away from the
32 > > mostly standard configuration mechanisms portage currently
33 > > supports.
34 >
35 > Yes. The depatoms syntax was defined for *DEPEND variables and is
36 > perfectly fine there, but imho, for some completly different
37 > purposes, it is far from being optimal. Especially in conjonction to
38 > this ignominous best_match_to_list() thing.
39
40 I'm not sure what ignominous means. The best_match_to_list() just checks
41 which atoms match against a cpv...
42
43 > > The extension to per-package configuration beyond basic atoms is
44 > > fine, but it needs to apply everywhere.
45 >
46 > Everywhere? No, imo some stuffs are better defined with the strict
47 > depatoms syntax, while others would benefit of an extended syntax.
48
49 Everywhere meaning all configuration files.
50
51 > It's a matter of what kind of packages sets you want to talk about:
52 > - strict depatoms are for single or multiple versions of a
53 > single package, and are perfect in *DEPEND strings, masks, emerge
54 > command-line, etc.
55
56 I don't see why masks should be excluded. As I said in the other thread,
57 I always run whatever is the latest packaged KDE. Being able to specify
58 kde-base/* would be much easier than the current method of specifying
59 individual atoms.
60
61 > > > Since being able to list several env file on a same line doesn't
62 > > > sounds like a must have feature to me, i would much prefer a
63 > > > package.env format of that kind:
64 > > > <rule> [<rule> ...] <envfile>
65 > > > where <rule> would be similar to what i've defined for
66 > > > BUILD_PKGS (with addition of full versioned dep atoms, which is
67 > > > a trivial change to my code). And if a package happens to
68 > > > match the rules lists of several lines, then the corresponding
69 > > > env files would all be sourced, in the order of the said
70 > > > lines. I can try to implement that if you agree on the idea.
71 > >
72 > > I don't see the difference in the end result. I can only see a
73 > > difference in perspective. Perhaps you could enlighten me on this
74 > > point?
75 >
76 > The difference is the ability to define accurate packages sets,
77 > which are the result of substractions, and thus needs severals
78 > sub-rules to be defined.
79
80 Ok. Although with package.env, it would be equally as useful to be able to
81 specify multiple envs after a rule-set. Perhaps it should be
82 <rule> [<rule> ...] <separator token> <envfile> [<envfile> ...]
83 ?
84
85 > > Rather than blacklist, I'd think that whitelisting is easier.
86 >
87 > What i thought first too, but won't work for ebuild-specifics
88 > variables (like LIRC_OPTS and a few other ugliness of that kind).
89
90 Actually, I meant whitelisting in documentation. Perhaps blacklisting would
91 be easier to document. Either way, I can't see much point in removing settings
92 that will have no affect if they are documented to have no affect.
93
94 > > Stuff known to portage that is okay to per-package
95 > > --------------------------------------------------
96 > > ACCEPT_KEYWORDS
97 > > FEATURES="buildpkg ccache distcc keeptemp keepwork noauto noclean
98 > > nodoc noinfo noman nostrip sandbox sfperms suidctl test userpriv
99 > > usersandbox"
100 > > USE
101 >
102 > Do you mean they already work with the patch in its current state,
103 > or that they could to work if some required changes are made?
104
105 Most operate only on the bash side and/or within doebuild (which should be
106 getting a setcpv()'d settings object already) so should work. The rest just
107 require setcpv() to be called and/or relocated.
108
109 > Oh, and something i've just wondered about and i prefer to mention
110 > before i forget: what about USE_EXPAND variables? Are they handled
111 > fine with the current patch, or is the "variable -> USE flags"
112 > conversion done only once for all in portage?
113
114 There's a block of code near the end of config.__init__ that sets up
115 USE_EXPAND. This block would need to be moved into regenerate().
116
117 --
118 Jason Stubbs
119 --
120 gentoo-portage-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-portage-dev] [Bug 44796] Per package environment variables Alec Warner <warnera6@×××××××.edu>