1 |
On 29 April 2013 15:14, heroxbd <heroxbd@g.o> wrote: |
2 |
> |
3 |
> Dear all, |
4 |
> |
5 |
> In GLEP22[1], reasonable defaults has been introduced to prevent the |
6 |
> explosion of keywords. With the growth of Gentoo Prefix, however, a |
7 |
> substantial amount of keywords are introduced. Among them, duplex |
8 |
> information exists. For example, an ebuild keyworded x86-linux(Gentoo |
9 |
> Prefix on x86 linux) will certainly build on x86 (Gentoo vanilla on x86 |
10 |
> linux). Furthermore if the ebuild has "amd64" keyword, it will certainly |
11 |
> build on amd64-linux too. |
12 |
> |
13 |
> This duplication becomes more manifested during the development of |
14 |
> Gentoo Prefix on arm. Introducing an arm-linux keyword is objected by |
15 |
> developers because we are having too many keywords[2]. But it is far |
16 |
> from consensus yet, as people are already adding arm-linux to |
17 |
> ebuilds[2]. |
18 |
> |
19 |
> There were also a proposal to treat arm the same as arm-linux, but |
20 |
> received more objections for its vagueness. |
21 |
> |
22 |
> Therefore we propose the following cartesian product extension to |
23 |
> keyword system. |
24 |
> |
25 |
> a. introducing four more variables, in order, KEYWORDS_ARCH, |
26 |
> KEYWORDS_KERNEL, KEYWORDS_USERLAND, KEYWORDS_LIBC. An order relation |
27 |
> is defined as arch > kernel > userland > libc |
28 |
> |
29 |
> b. KEYWORDS_var1 must be defined if KEYWORDS_var2 is defined and var2 < |
30 |
> var1. Otherwise it can be omitted. |
31 |
> |
32 |
> c. KEYWORDS_PROD is defined as cartesian product of KEYWORDS_ARCH, |
33 |
> KEYWORDS_KERNEL, KEYWORDS_USERLAND, KEYWORDS_LIBC. Omitted variable |
34 |
> is interpreted as empty and not counted in the product. e.g., if |
35 |
> KEYWORDS_USERLAND and KEYWORDS_LIBC are not defined, KEYWORDS_PROD is |
36 |
> the product of KEYWORDS_ARCH and KEYWORDS_KERNEL. |
37 |
> |
38 |
> c1. "~" is attached to KEYWORDS_PROD elements if any of its oprand has "~". |
39 |
> |
40 |
> d. KEYWORDS is redefined as union of KEYWORDS_PROD and KEYWORDS (for |
41 |
> backward compatibility) |
42 |
> |
43 |
> e. reasonable defaults in GLEP22 applys. |
44 |
> |
45 |
> Therefore, for sys-devel/bison, the keywords proposed will be: |
46 |
> |
47 |
> KEYWORDS="~hppa-hpux ~m68k-mint ~ppc-aix ~x64-solaris ~x86-interix |
48 |
> |
49 |
> KEYWORDS_ARCH="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" |
50 |
> |
51 |
> KEYWORDS_KERNEL="~linux ~solaris ~freebsd ~fbsd ~macos" |
52 |
> |
53 |
> Problems remaining: |
54 |
> |
55 |
> a. how to do stablization in this case? |
56 |
> |
57 |
> b. how to handle things that does not exist? e.g. sparc-macosx? |
58 |
> |
59 |
> c. how to clean up confusions? e.g. x64-solaris vs amd64-solaris, |
60 |
> freebsd (Gentoo Prefix on FreeBSD) vs fbsd (Gentoo/FreeBSD) |
61 |
|
62 |
|
63 |
To me this looks to be needlessly complex. |
64 |
|
65 |
Cheers, |
66 |
|
67 |
Ben | yngwin |
68 |
Gentoo developer |
69 |
Gentoo Qt project lead, Gentoo Wiki admin |