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. |