1 |
Dnia 2014-07-03, o godz. 02:18:23 |
2 |
Joshua Kinard <kumba@g.o> napisał(a): |
3 |
|
4 |
> [...] |
5 |
> |
6 |
> And so on. The goal was to have profiles/ be extremely flat, with limited |
7 |
> nesting only for categorization purposes. Each component would contain all |
8 |
> of the information specific to that component, and rely on OOP-like |
9 |
> inheritance to override parent-level variables only within that component |
10 |
> (although, <arch> and <kernel> would have to be a little bit more broad in |
11 |
> scope). |
12 |
|
13 |
Another sub-thread, the same question: how do you handle information |
14 |
that needs to be applied to the intersection of the profiles? CHOST for |
15 |
amd64 FreeBSD, for example. |
16 |
|
17 |
> PROFILE also had a set order for the first few pieces, if only to make |
18 |
> parsing and building the profile stack saner for the Portage developers: |
19 |
> PROFILE="base:<KERNEL>:<ARCH>[:<SUBARCH>]:<LIBC>:<EVERYTHING_ELSE>" |
20 |
> |
21 |
> base - Core Gentoo/Portage/whatever information/vars/foobar/kittens |
22 |
|
23 |
I'm against plain 'base' since it quickly becomes a mess. I would |
24 |
prefer having flavor-specific bases, like for example arch/base to mask |
25 |
stuff available only in 1/2 arches and revert it in another arch/. |
26 |
|
27 |
> kernel - Specifies the OS kernel. At the time, only Linux existed, but |
28 |
> I *think* Debian was eyeballing kFreeBSD at the time. So I *think* |
29 |
> I accounted for it back then. |
30 |
|
31 |
What about kernel-ABI intersection? What about Prefix? |
32 |
|
33 |
> arch - Machine arch-specific generic information -- doesn't handle |
34 |
> lower-level things like ISAs/ABIs/Endian, etc. |
35 |
> |
36 |
> subarch - Defines items specific given to given subarch of a main arch. |
37 |
> Items under this directory would carry their parent arch's |
38 |
> name for clarity only. Again, at the time, MIPS would have been |
39 |
> the only real user of this, and, back then, it would've dealt |
40 |
> with SGI-machine-specific packages and USE flags, such as |
41 |
> differentiating an ip32 machine from an ip27 machine or a |
42 |
> cobalt. Now that amd64/x86_64 is considering its own form of |
43 |
> n32 (x32), that would go here, and I imagine arm would |
44 |
> make heavy use of it as well. |
45 |
|
46 |
This is a no-go for multilib support. We need to work on a consistent |
47 |
arch profile tree, not more splitting. |
48 |
|
49 |
> libc - Defines the main C library used. A bit redundant for *BSD, because |
50 |
> they really only have one, but might help if we ever add k*BSD |
51 |
> support (such as freebsd/glibc-based or such). For Linux...could be |
52 |
> tricky, since there are so many libc possibilities there. I feel it |
53 |
> fits better getting defined after <SUBARCH>, especially in the case |
54 |
> of MIPS. |
55 |
|
56 |
I think you need to handle kernel & libc in the same group. |
57 |
|
58 |
> eapi - EAPI didn't exist back when this topic was visited. Basically, |
59 |
> everything was EAPI=0 and there was only Portage (Paludis nor |
60 |
> pkgcore had been invented yet). |
61 |
|
62 |
And what is this supposed to do? |
63 |
|
64 |
> releases - I don't think this existed back then. How it'd operate |
65 |
> nowadays, I have no idea. Probably would contain |
66 |
> version-specific maskings for specific @system packages |
67 |
> to facilitate upgrading, and help us if we ever tried to cut |
68 |
> actual, fixed release points again (like what FreeBSD does |
69 |
> w/ -RELEASE-x.y) |
70 |
|
71 |
I don't think releases would make any sense without heavy intersection |
72 |
with other profiles. |
73 |
|
74 |
-- |
75 |
Best regards, |
76 |
Michał Górny |