Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [PATCH] Support @profile package set for bug #532224
Date: Fri, 12 Dec 2014 16:51:09
Message-Id: 548B1CF8.2030808@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [PATCH] Support @profile package set for bug #532224 by "Rick \\\"Zero_Chaos\\\" Farina"
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