Gentoo Archives: gentoo-dev

From: AGottinger@t-online.de (Achim Gottinger)
To: gentoo-dev@g.o
Subject: Re: [gentoo-dev] package.mask
Date: Sat, 14 Apr 2001 14:27:26
Message-Id: 3AD8ABF4.47F30206@gentoo.org
In Reply to: Re: [gentoo-dev] package.mask by Daniel Robbins
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

Replies

Subject Author
Re: [gentoo-dev] package.mask Daniel Robbins <drobbins@g.o>