1 |
EAPI 3 makes IUSE strict: flags not listed in IUSE can't be used in |
2 |
dependency strings, use queries and so on. However, the specification |
3 |
includes ways of implicitly adding things to the effective value of |
4 |
IUSE via the base profile make.defaults. What the specification doesn't |
5 |
say, and what hasn't been formally decided, is what exactly will be |
6 |
implicit. |
7 |
|
8 |
First up is ARCH. Most people don't seem to want to explicitly list |
9 |
IUSE="x86" etc to make 'use x86' and 'x86? ( ... )' work. Also, people |
10 |
seem to want to continue the existing unprefixed behaviour rather than |
11 |
starting to write 'arch_x86'. So we'll need: |
12 |
|
13 |
USE_EXPAND_UNPREFIXED="ARCH" |
14 |
USE_EXPAND_IMPLICIT="ARCH" |
15 |
|
16 |
In addition, all the implicit values need to be listed. According to |
17 |
arch.list, the values are: |
18 |
|
19 |
USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd arm hppa ia64 m68k \ |
20 |
mips ppc ppc64 s390 sh sparc sparc-fbsd x86 x86-fbsd ppc-aix \ |
21 |
x86-freebsd x64-freebsd ia64-hpux x86-interix mips-irix \ |
22 |
amd64-linux ia64-linux x86-linux ppc-macos x86-macos x64-macos \ |
23 |
m68k-mint x86-netbsd ppc-openbsd x86-openbsd x64-openbsd \ |
24 |
sparc-solaris sparc64-solaris x64-solaris x86-solaris x86-winnt" |
25 |
|
26 |
I've no idea whether that list is accurate. With EAPI 3 it'll matter. |
27 |
|
28 |
Of the normal USE_EXPAND flags, some appear to be routinely listed in |
29 |
IUSE anyway, and some pretty much never are. I'd imagine USERLAND, |
30 |
KERNEL and ELIBC will want to be implicit: |
31 |
|
32 |
USE_EXPAND_IMPLICIT="${USE_EXPAND_IMPLICIT} USERLAND KERNEL ELIBC" |
33 |
|
34 |
And again, the implicit values will have to be listed. According to the |
35 |
desc files (which could be full of lies): |
36 |
|
37 |
USE_EXPAND_VALUES_USERLAND="GNU BSD" |
38 |
USE_EXPAND_VALUES_KERNEL="AIX Darwin FreeBSD freemint linux HPUX \ |
39 |
Interix IRIX NetBSD OpenBSD SunOS" |
40 |
USE_EXPAND_VALUES_ELIBC="AIX Darwin DragonFly FreeBSD glibc HPUX \ |
41 |
Interix IRIX mintlib NetBSD OpenBSD SunOS uclibc" |
42 |
|
43 |
Are there any other USE_EXPANDs that people want implicit behaviour |
44 |
for? If so, which ones, and are the desc files accurate? |
45 |
|
46 |
Finally, there's room to include plain old flags in IUSE automatically. |
47 |
This was added to the specification as a hypothetical "we might want |
48 |
this, and it's easy to specify and implement" rather than a "we'll |
49 |
definitely be using this". Flags that I'm aware of that regularly get |
50 |
abused are: |
51 |
|
52 |
IUSE_IMPLICIT="build debug" |
53 |
|
54 |
Are people wanting to make those implicit? Are there any other flags |
55 |
that people really don't want to put in IUSE? Bear in mind that any |
56 |
flag that's implicit can't ever be used for a use dependency default. |
57 |
|
58 |
-- |
59 |
Ciaran McCreesh |