1 |
On 12/12/2014 08:01 AM, Rick "Zero_Chaos" Farina wrote: |
2 |
> On 12/11/2014 03:38 AM, Zac Medico wrote: |
3 |
>> On 12/11/2014 12:25 AM, Michał Górny wrote: |
4 |
>>> Dnia 2014-12-10, o godz. 18:08:00 |
5 |
>>> Zac Medico <zmedico@g.o> napisał(a): |
6 |
>>> |
7 |
>>>> Add support for a new @profile set which allows the profile to pull |
8 |
>>>> in additional packages that do not belong to the @system set. |
9 |
>>>> |
10 |
>>>> The motivation to have @profile separate from @system is that |
11 |
>>>> @system packages may have incomplete dependency specifications |
12 |
>>>> (due to long-standing Gentoo policy), and incomplete dependency |
13 |
>>>> specifications have deleterious effects on the ability of emerge |
14 |
>>>> --jobs to parallelize builds. So, unlike @system, packages added to |
15 |
>>>> @profile do not hurt emerge --jobs parallelization. |
16 |
>>>> |
17 |
>>>> Packages are added to the @profile set in the same way that they are |
18 |
>>>> added to the @system set, except that atoms in the @profile set are |
19 |
>>>> not preceded with a '*' character. Also, the @profile package set |
20 |
>>>> is only supported when 'profile-set' is listed in the layout.conf |
21 |
>>>> profile-formats field of the containing repository. |
22 |
>>> |
23 |
>>> PMS says PMs ought to ignore atoms without '*'. This means we can't use |
24 |
>>> it without profile EAPI change, or other PMs will start losing packages. |
25 |
> |
26 |
> I have to agree, any chance we can get this into EAPI 6? |
27 |
|
28 |
Yes, that would be nice. |
29 |
|
30 |
>> |
31 |
>> It's hidden behind a layout.conf profile-formats flag, so it's beyond |
32 |
>> the scope of PMS. Package managers should reject the profile if they |
33 |
>> don't recognize the profile-formats flags that it declares. |
34 |
>> |
35 |
> Yes, but that still makes this change incompatible with other package |
36 |
> managers, no? |
37 |
|
38 |
I'm not sure that "incompatible" is the best word. It's an extension, |
39 |
and the general nature of extensions is that software needs to be |
40 |
updated in order to support them. Other package managers are welcome to |
41 |
implement this extension, but they are under no obligation to. |
42 |
|
43 |
> If we remove the leading * from a package to signify that |
44 |
> it can safely be built in parallel that would mean all non-portage |
45 |
> package managers would just plain lose the package, if they didn't shit |
46 |
> themselves because the file had an invalid line. |
47 |
|
48 |
It depends on the package manager's profile-formats implementation. If a |
49 |
package manager rejects profiles with unrecognized profile-formats |
50 |
flags, then it should simply give an error message about the profile |
51 |
having unsupported profile-formats extensions. |
52 |
|
53 |
Existing releases of portage only produce a warning if profile-formats |
54 |
has unrecognized extensions. The advantage of this approach is that it's |
55 |
feasible to enable profile-set on existing profiles, and it's still |
56 |
possible for existing deployments that use those profiles to upgrade |
57 |
from older portage to a new version that supports the profile-set extension. |
58 |
|
59 |
I would not recommend to enable the profile-set extension in the |
60 |
"gentoo" repository for a couple of reasons: |
61 |
|
62 |
1) Other supported package managers don't support the profile-set |
63 |
extension yet. |
64 |
|
65 |
2) We don't have a stable-keyworded version of sys-apps/portage |
66 |
supporting the profile-set extension yet, so stable users will not be |
67 |
able to use the this extension with current versions of stable-keyworded |
68 |
sys-apps/portage. |
69 |
|
70 |
However, the above issues are not necessarily relevant to repositories |
71 |
other than "gentoo", so it may be feasible for them to utilize the |
72 |
profile-set extension immediately. |
73 |
|
74 |
> We need to make this EAPI dependant or we are going to break things, and |
75 |
> QA doesn't like it when things this big break. I love where this is |
76 |
> going, but I do not see a better solution here than making it EAPI |
77 |
> dependent. |
78 |
|
79 |
Making it EAPI dependent is not mutually exclusive from the |
80 |
profile-formats approach. We can certainly do both. I would recommend to |
81 |
use the EAPI approach for the "gentoo" repository. Other repositories |
82 |
can enable the profile-set extension immediately, as long as the |
83 |
mentioned issues are irrelevant to their consumers. |
84 |
-- |
85 |
Thanks, |
86 |
Zac |