Gentoo Archives: gentoo-portage-dev

From: Alec Warner <antarus@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] RFC: replacing "packages"
Date: Fri, 26 Oct 2007 05:15:29
Message-Id: b41005390710252214r6516c73bv45e1862a95fb9a34@mail.gmail.com
In Reply to: [gentoo-portage-dev] RFC: replacing "packages" by Marius Mauch
1 On 10/24/07, Marius Mauch <genone@g.o> wrote:
2 > As package sets are mostly done now, I'm starting to think about
3 > something else. One of my pet peeves with portage is the "packages"
4 > file in profiles, for several reasons:
5 > 1) it has two completely independent purposes
6
7 ok
8
9 > 2) it implements a redundant visibility filter as package.mask is also
10 > available in profiles
11
12 ok
13
14 > 3) the syntax for defining the "system" set plain sucks
15
16 not really relevant
17
18 > 4) the name doesn't really say anything about the purpose
19
20 not really relevant.
21
22 3 and 4 are documentation problems, not necessarily problems within
23 the current implementation.
24
25 >
26 > Another issue that isn't directly related, but covered by the proposed
27 > solution below, is the so called "implicit system dependency" in
28 > ebuilds, which doesn't really exist. It only an assumption by people
29 > that the "system" set is satisfied before an ebuild is processed, so
30 > its contents don't have to be listed in *DEPEND. If a user breaks that
31 > assumption by not regulary ensuring that "system" is satisfied bugs can
32 > occur. Another issue is the informal exception when system items are
33 > allowed to/must be listed in *DEPEND, IMO that should be formalized.
34
35 I'm going to discuss a bit your implementation below, since you
36 address what you are trying to solve here. My main problem is that
37 given a tree (such as gentoo-x86) it may have one or more profiles
38 with one or more sub-profiles (children). These profiles may contain
39 a set of packages that make up 'system'. The ebuilds DEPEND (or
40 RDEPEND or whatever) on this set of packages existing. The problem I
41 see with your solution is that it doesn't address different system
42 sets in different profiles. Now in practice this isn't much of a
43 problem within gentoo-x86 (most profiles have similar system sets).
44 However it places a certain onus on any profile in a given tree, it
45 must have a system package 'similar' enough to other sets in
46 functioning profiles; otherwise breakage is likely to occur. How
47 would you address this in your system?
48
49 >
50 > To solve both issues I propose the following system:
51 > Profiles can contain the files "system.depend" and "system.rdepend"
52 > whose combined contents make up the "system" target. If any of those
53 > two files exists the "packages" file is ignored. The syntax should
54 > either be the same as package.mask or, if desired, also allow complex
55 > atoms (use-conditionals, any-of constructs).
56 > The second part would be that portage implicitly adds the content of
57 > the files to the DEPEND or RDEPEND setting of each ebuild unless it
58 > contains RESTRICT=system-deps. Obviously this would have to be tied to
59 > a new EAPI version. (an undefined cornercase here is if a profile does
60 > not contain the new files, not sure how that should be handled)
61 >
62 > Benefits:
63 > - we get rid of all the issues outlined at the top
64 > - should make it easier long-term to setup a no-compile system that only
65 > installs binary packages due to separation of build- and runtime deps
66 > in "system"
67 >
68 > Problems:
69 > - obviously it has to be implemented first
70 > - no obvious solution for stacking rules (e.g. child uses system.*, but
71 > parent profile only has "packages")
72 > - some people might rely on the "packages" file
73 >
74 > So, comments?
75 >
76 > Marius
77 >
78 > --
79 > Public Key at http://www.genone.de/info/gpg-key.pub
80 >
81 > In the beginning, there was nothing. And God said, 'Let there be
82 > Light.' And there was still nothing, but you could see a bit better.
83 >
84 >
85 --
86 gentoo-portage-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-portage-dev] RFC: replacing "packages" Marius Mauch <genone@g.o>