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: Fri, 04 Nov 2005 17:54:53
Message-Id: 200511050255.01161.jstubbs@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [Bug 44796] Per package environment variables by Thomas de Grenier de Latour
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

Replies

Subject Author
Re: [gentoo-portage-dev] [Bug 44796] Per package environment variables Thomas de Grenier de Latour <degrenier@×××××××××××.fr>