1 |
Daniel Robbins wrote: |
2 |
> |
3 |
> On Sat, Apr 14, 2001 at 08:10:58PM +0200, Achim Gottinger wrote: |
4 |
> |
5 |
> > > Soon, we'll have all the features in Portage to ensure that the *right* |
6 |
> > > versions of packages get installed (not just the most recent that satisifies |
7 |
> > > the dependency). If we then focus on ensuring that all the various ebuilds on |
8 |
> > > CVS will compile under any version of Gentoo Linux, then I don't think we have |
9 |
> > > a problem anymore. |
10 |
> > |
11 |
> > And this is less work that maintaining different branches? |
12 |
> > I think this is MI-3 Odysee-2100 to jupiter. :-) |
13 |
> |
14 |
> No, it isn't that complicated. |
15 |
|
16 |
Did I miss some mathematical break thrus? |
17 |
Let us just focus on glibc, ncurses and a package that requires both. |
18 |
Now assume we have 2 versions of glibc and 2 of ncurses. So we must get |
19 |
the package working with 4 different lib combinations. (no math study |
20 |
required |
21 |
for that example). We have a maximum dependencie dept at about 10 for |
22 |
some gnome package. Assume 2 possibilities for for each dep and you must |
23 |
run 2^10 tests for a single package. |
24 |
Of cause it is not complicated to automate the tests, but it may take a |
25 |
while to run them. |
26 |
|
27 |
> |
28 |
> > > We can have certain expectations as to ebuild compatibility |
29 |
> > > -- for example, we can make a rule that any Gentoo Linux 1.x ebuild should be |
30 |
> > > able to compile on any other Gentoo Linux 1.x system (whether "stable" or |
31 |
> > > "current"). If an ebuild doesn't meet this rule, then this particular version |
32 |
> > > should be blocked out of the appropriate packages files, i.e. |
33 |
> > > <=sys-apps/bash-2.05 would block out sys-apps/bash-2.06 or later. |
34 |
> |
35 |
> > does this work |
36 |
> > |
37 |
> > !sys-apps/bash-2.04 |
38 |
> > |
39 |
> > if I only want to use bash-2.04 and no other version? |
40 |
> > You know, never touch a running system. :-) |
41 |
> |
42 |
> If you don't want to change any of your packages, then what are you doing running |
43 |
> "emerge system" in the first place? :) |
44 |
> |
45 |
> If you just wanted sys-apps/bash-2.04 to be considered during an "emerge |
46 |
> system", then you should have this in your packages file: |
47 |
> |
48 |
> =sys-apps/bash-2.04 |
49 |
> |
50 |
> Right now, the packages file is only used during an "emerge system", but it |
51 |
> will be used more extensively in the very near future. I'd like it to be used |
52 |
> for *all* dependency checking. |
53 |
> |
54 |
> I'm thinking that each line in "packages" can specify two things at the same |
55 |
> time. First, it specifies a package or range of packages that *must* be |
56 |
> installed (or *must not* be installed) in order to make the system |
57 |
> profile-compliant. |
58 |
> |
59 |
> Secondly, each entry in "packages" also specifies a subrange of packages that will |
60 |
> be considered for resolving dependencies -- the opposite of package.mask. If you |
61 |
> want to specify a required package without a subrange, you would simply enter: |
62 |
> |
63 |
> sys-apps/bash |
64 |
> |
65 |
> But, if you have "=sys-apps/bash-2.04" in the packages file, then only this version |
66 |
> will be listed as available and used to resolve deps. |
67 |
> |
68 |
> If a package *isn't* listed in "packages", then: |
69 |
> 1. There is no requirement for this particular package to be installed, |
70 |
> 2. There is no requirement for this particular package to *not* be installed, |
71 |
> 3. There are no restrictions placed on what versions of this package are |
72 |
> considered when resolving auto-dependencies. |
73 |
> |
74 |
> If "!sys-apps/bash-2.04" were in the packages file, then every package *but* bash-2.04 |
75 |
> would be considered in resolving sys-apps/bash deps. |
76 |
|
77 |
No I ment !sys-apps/bash-2.04 in package.mask. |
78 |
> |
79 |
> This solution should give everyone lots of control over what gets installed and |
80 |
> create a clear dependency "command structure". My previous concept would allow |
81 |
> for DEPEND and RDEPEND to "clash" with the packages file. With the above |
82 |
> proposal, this is no longer possible -- the "packages" file has authority. |
83 |
> |
84 |
> emerge chain of command is as follows: |
85 |
> 1. package.mask eliminates unstable ebuilds |
86 |
> 2. packages specifies required packages and optionally eliminates certain |
87 |
> versions of packages from consideration. |
88 |
> 3. DEPEND and RDEPEND are evaluated as usual, except all ebuilds eliminated |
89 |
> during steps 1 and 2 are effectively ignored. |
90 |
> |
91 |
> "ebuild" would still allow you to manually install a package if you absolutely |
92 |
> wanted to -- we will begin considering ebuild a low-level developer's tool as |
93 |
> emerge and pkgmerge become more feature-rich. |
94 |
|
95 |
Wouldn't it be easier to use emerge for pkgmerge too. emerge can check |
96 |
if a suitable tbz2-package exists for |
97 |
a required package and uses this instead of building it. If you call |
98 |
emerge [package].tbz2, this packages |
99 |
.ebuild file is used. |
100 |
|
101 |
> |
102 |
> Let's think about this proposed use of "packages" for a bit, and then I'll |
103 |
> implement it if everyone is OK with it. |
104 |
|
105 |
But that whould break your first idea of the packages file. How about |
106 |
using a global mask file to eliminate |
107 |
in development packages and a profile depending to controll packages |
108 |
versions more efficient. |
109 |
In this scenarion the packages file does only contain lines like |
110 |
sys-apps/bash without any version information. |
111 |
Once we have a rc4 we can list all packages with their versions in |
112 |
packages/rc4/package.mask with for example |
113 |
=sys-apps/bash-2.05. If you want to keep all packages on your system up |
114 |
to date, you can simply delete the profile depending package.mask file |
115 |
and can still be sure you don't get unusable in development packages, |
116 |
since |
117 |
the global mask is still there. |
118 |
BTW, we might get problems with MULTIPLE="yes" packages. |
119 |
|
120 |
achim~ |
121 |
|
122 |
> |
123 |
> -- |
124 |
> Daniel Robbins <drobbins@g.o> |
125 |
> President/CEO http://www.gentoo.org |
126 |
> Gentoo Technologies, Inc. |
127 |
> |
128 |
> _______________________________________________ |
129 |
> gentoo-dev mailing list |
130 |
> gentoo-dev@g.o |
131 |
> http://www.gentoo.org/mailman/listinfo/gentoo-dev |