1 |
On Friday 04 November 2005 04:30, Thomas de Grenier de Latour wrote: |
2 |
> On Fri, 4 Nov 2005 01:19:35 +0900 |
3 |
> |
4 |
> Jason Stubbs <jstubbs@g.o> wrote: |
5 |
> > package.env would be a list of "<atom> <file> [<file> ...]" |
6 |
> |
7 |
> ... |
8 |
> |
9 |
> > With a couple of small modifications to emerge to check FEATURES |
10 |
> > for "buildpkg" after the call to setcpv() is done rather than |
11 |
> > doing it once globally, this would also cover TGL's BUILD_PKGS |
12 |
> > addition too. |
13 |
> |
14 |
> Not if env files are only selectable by strict depatoms. I mean, |
15 |
> sure this syntax is perfect for *DEPEND strings, and is fine for |
16 |
> package.{use,mask,unmask} (although the randomness of |
17 |
> best_match_to_list() is rather annoying). But for package.keywords, |
18 |
> it is already sub-optimal imho (i run ~arch so i don't care |
19 |
> much, but for instance i often see people on forums who list |
20 |
> some whole categories there), and it would be too for the generic |
21 |
> package.env. For instance, people who develop gnome stuffs might |
22 |
> want to use the debug env for gnome-*/* packages. As for |
23 |
> the buildpkg FEATURES flag, it would be a real pita if i had to list |
24 |
> all packages matched by my current BUILD_PKGS spec (just look at |
25 |
> the examples i've put in my email on that topic to get the idea). |
26 |
|
27 |
gnome-*/* for package.keywords is already not supported. There is no |
28 |
difference between what I/pclouds is suggesting for package.env and |
29 |
package.keywords. What you are really after is for extending the |
30 |
configuration syntax to support more than just the DEPEND atom. I was |
31 |
going to reply to that earlier but this patch came up in between me |
32 |
reading it and, umm, now. |
33 |
|
34 |
If the configuration syntax is going to be extended, it needs to be |
35 |
extended across the board. There is already a (closed) bug asking for |
36 |
regex atom support. This is essentially what you are asking for with the |
37 |
BUILD_PKGS patch. The difference is that you are completely breaking |
38 |
away from the mostly standard configuration mechanisms portage currently |
39 |
supports. |
40 |
|
41 |
The extension to per-package configuration beyond basic atoms is fine, |
42 |
but it needs to apply everywhere. If it can remain quick all the better, |
43 |
but the most important thing is that whatever syntax is used can be used |
44 |
whereever an atom can be used at the moment. |
45 |
|
46 |
> Since being able to list several env file on a same line doesn't |
47 |
> sounds like a must have feature to me, i would much prefer a |
48 |
> package.env format of that kind: |
49 |
> <rule> [<rule> ...] <envfile> |
50 |
> where <rule> would be similar to what i've defined for BUILD_PKGS |
51 |
> (with addition of full versioned dep atoms, which is a trivial |
52 |
> change to my code). And if a package happens to match the rules |
53 |
> lists of several lines, then the corresponding env files would all |
54 |
> be sourced, in the order of the said lines. I can try to implement |
55 |
> that if you agree on the idea. |
56 |
|
57 |
I don't see the difference in the end result. I can only see a difference in |
58 |
perspective. Perhaps you could enlighten me on this point? |
59 |
|
60 |
> My second concern is about unsupported variables (some of the |
61 |
> FEATURES flags, some of the *DIR locations, etc.): i think they |
62 |
> should be somehow blacklisted, to avoid crazy breakages/bugreports |
63 |
> (btw, a quick look on the variables listed in make.conf.example |
64 |
> made me realize it was not that easy to write an accurate |
65 |
> blacklist, which tends to confirm it's really needed). |
66 |
|
67 |
Rather than blacklist, I'd think that whitelisting is easier. Anything unknown |
68 |
to portage (and hence only used on the bash side) will work. |
69 |
|
70 |
Stuff known to portage that is okay to per-package |
71 |
-------------------------------------------------- |
72 |
ACCEPT_KEYWORDS |
73 |
FEATURES="buildpkg ccache distcc keeptemp keepwork noauto noclean nodoc noinfo |
74 |
noman nostrip sandbox sfperms suidctl test userpriv usersandbox" |
75 |
USE |
76 |
|
77 |
Stuff documented but unknown to portage that will work per-package |
78 |
------------------------------------------------------------------ |
79 |
MAKE_OPTS |
80 |
CFLAGS |
81 |
CHOST |
82 |
CTARGET |
83 |
EBEEP_IGNORE |
84 |
EPAUSE_IGNORE |
85 |
NOCOLOR |
86 |
|
87 |
Stuff known to portage but is portage configuration |
88 |
--------------------------------------------------- |
89 |
FEATURES="autoaddcvs cvs digest distlocks fixpackages getbinpkg gpg mirror |
90 |
notitles severe sign strict" |
91 |
FETCHCOMMAND |
92 |
GENTOO_MIRRORS |
93 |
PKGDIR |
94 |
PORT_LOGDIR |
95 |
PORTAGE_BINHOST |
96 |
PORTAGE_NICENESS |
97 |
PORTAGE_TMPDIR |
98 |
PORTDIR |
99 |
PORTDIR_OVERLAY |
100 |
RESUMECOMMAND |
101 |
ROOT |
102 |
RSYNC_EXCLUDEFROM |
103 |
RSYNC_RETRIES |
104 |
RSYNC_TIMEOUT |
105 |
RPMDIR |
106 |
SYNC |
107 |
USE_ORDER |
108 |
|
109 |
* Some of those FEATURES could probably be moved to the supported list |
110 |
|
111 |
Stuff unknown to portage but is only documented as it affects the default |
112 |
FETCH_COMMEND |
113 |
------------------------------------------------------------------------- |
114 |
http_proxy |
115 |
ftp_proxy |
116 |
|
117 |
|
118 |
The question of facing the supported vs unsupported variables is one that we |
119 |
have been facing for some time. Just looking at the short list of those that |
120 |
are known to portage and can be supported, it's a hell of a lot of options to |
121 |
implement as separate configuration files. Thinking of not support per- |
122 |
package env in some way or another at some point down the track is pure |
123 |
fantasy. |
124 |
|
125 |
-- |
126 |
Jason Stubbs |
127 |
-- |
128 |
gentoo-portage-dev@g.o mailing list |