Gentoo Archives: gentoo-dev

From: Daniel Robbins <drobbins@g.o>
To: gentoo-dev@g.o
Subject: Re: [gentoo-dev] package.mask
Date: Sat, 14 Apr 2001 13:34:28
Message-Id: 20010414133428.F25655@cvs.gentoo.org
In Reply to: Re: [gentoo-dev] package.mask by AGottinger@t-online.de (Achim Gottinger)
1 On Sat, Apr 14, 2001 at 08:10:58PM +0200, Achim Gottinger wrote:
2
3 > > Soon, we'll have all the features in Portage to ensure that the *right*
4 > > versions of packages get installed (not just the most recent that satisifies
5 > > the dependency). If we then focus on ensuring that all the various ebuilds on
6 > > CVS will compile under any version of Gentoo Linux, then I don't think we have
7 > > a problem anymore.
8 >
9 > And this is less work that maintaining different branches?
10 > I think this is MI-3 Odysee-2100 to jupiter. :-)
11
12 No, it isn't that complicated.
13
14 > > We can have certain expectations as to ebuild compatibility
15 > > -- for example, we can make a rule that any Gentoo Linux 1.x ebuild should be
16 > > able to compile on any other Gentoo Linux 1.x system (whether "stable" or
17 > > "current"). If an ebuild doesn't meet this rule, then this particular version
18 > > should be blocked out of the appropriate packages files, i.e.
19 > > <=sys-apps/bash-2.05 would block out sys-apps/bash-2.06 or later.
20
21 > does this work
22 >
23 > !sys-apps/bash-2.04
24 >
25 > if I only want to use bash-2.04 and no other version?
26 > You know, never touch a running system. :-)
27
28 If you don't want to change any of your packages, then what are you doing running
29 "emerge system" in the first place? :)
30
31 If you just wanted sys-apps/bash-2.04 to be considered during an "emerge
32 system", then you should have this in your packages file:
33
34 =sys-apps/bash-2.04
35
36 Right now, the packages file is only used during an "emerge system", but it
37 will be used more extensively in the very near future. I'd like it to be used
38 for *all* dependency checking.
39
40 I'm thinking that each line in "packages" can specify two things at the same
41 time. First, it specifies a package or range of packages that *must* be
42 installed (or *must not* be installed) in order to make the system
43 profile-compliant.
44
45 Secondly, each entry in "packages" also specifies a subrange of packages that will
46 be considered for resolving dependencies -- the opposite of package.mask. If you
47 want to specify a required package without a subrange, you would simply enter:
48
49 sys-apps/bash
50
51 But, if you have "=sys-apps/bash-2.04" in the packages file, then only this version
52 will be listed as available and used to resolve deps.
53
54 If a package *isn't* listed in "packages", then:
55 1. There is no requirement for this particular package to be installed,
56 2. There is no requirement for this particular package to *not* be installed,
57 3. There are no restrictions placed on what versions of this package are
58 considered when resolving auto-dependencies.
59
60 If "!sys-apps/bash-2.04" were in the packages file, then every package *but* bash-2.04
61 would be considered in resolving sys-apps/bash deps.
62
63 This solution should give everyone lots of control over what gets installed and
64 create a clear dependency "command structure". My previous concept would allow
65 for DEPEND and RDEPEND to "clash" with the packages file. With the above
66 proposal, this is no longer possible -- the "packages" file has authority.
67
68 emerge chain of command is as follows:
69 1. package.mask eliminates unstable ebuilds
70 2. packages specifies required packages and optionally eliminates certain
71 versions of packages from consideration.
72 3. DEPEND and RDEPEND are evaluated as usual, except all ebuilds eliminated
73 during steps 1 and 2 are effectively ignored.
74
75 "ebuild" would still allow you to manually install a package if you absolutely
76 wanted to -- we will begin considering ebuild a low-level developer's tool as
77 emerge and pkgmerge become more feature-rich.
78
79 Let's think about this proposed use of "packages" for a bit, and then I'll
80 implement it if everyone is OK with it.
81
82 --
83 Daniel Robbins <drobbins@g.o>
84 President/CEO http://www.gentoo.org
85 Gentoo Technologies, Inc.

Replies

Subject Author
Re: [gentoo-dev] package.mask AGottinger@t-online.de (Achim Gottinger)