1 |
On Fri, Mar 30, 2001 at 01:24:07AM +0200, Achim Gottinger wrote: |
2 |
|
3 |
> No I don't remember. We talked about making packages that can be used to |
4 |
> install everything required for a profile using RDEPEND. Maybe that was a |
5 |
> missunderstanding. So how do you resolve >=sys-libs/glibc-2.2 if you do not |
6 |
> look in a current-packages file? Hope you don't use the lates package in |
7 |
> sys-libs/glibc. |
8 |
|
9 |
Right now, that's exactly what we do (use the most recent package). That's |
10 |
why we need to add things like this to the dependency syntax: |
11 |
|
12 |
~sys-apps/glibc-2.2 |
13 |
|
14 |
and |
15 |
|
16 |
=sys-apps/glibc-2.2* |
17 |
|
18 |
Here's my vision for the /etc/make.profile/packages file. Each line will |
19 |
contain a single dependency that looks just like a dependency in DEPEND or |
20 |
RDEPEND, and we'll also have support for ~ and * by then. Then, to update your |
21 |
system, you can type: |
22 |
|
23 |
# emerge --profile |
24 |
|
25 |
This will cause emerge to look at /etc/make.profile/packages and use it as |
26 |
a giant dependency list for your system. If you just want to see what would |
27 |
be updated (without making any changes), you'd type: |
28 |
|
29 |
# emerge --pretend --profile |
30 |
|
31 |
--------- |
32 |
|
33 |
The dep_bestmatch() method is the one that returns the most recent package |
34 |
available that matches the dependency. I think this is fine and good. To |
35 |
understand why, it's important to understand the difference between |
36 |
current-packages and the new "profiles" system. |
37 |
|
38 |
Right now, current-packages lists *every* package on the system and specifies |
39 |
the *exact* version of each package that should be installed. |
40 |
|
41 |
A system profile (/etc/make.profile/packages) will *not* be required to specify |
42 |
a version for every possible package on the system. For example, if you are |
43 |
using the "minimal server" profile, there will be no gnome-base or kde-base |
44 |
packages listed at all. This is because the system profile's job is to list a |
45 |
*subset* of packages (and versions) that are *required* on your particular |
46 |
system. |
47 |
|
48 |
So, let's say that we have a minimal server system and we want to install KDE. |
49 |
Of course, portage lets us do it, even though no KDE files are listed in our |
50 |
system profile. At this point, the system profile can't help us choose the |
51 |
correct versions of KDE (since none are listed in /etc/make.profile/packages), |
52 |
so it's up to Portage (with the help of the RDEPEND and DEPEND syntax) alone to |
53 |
determine the proper ebuild functions to merge. Choosing the correct version |
54 |
becomes the sole responsibility of the RDEPEND and DEPEND strings -- if the |
55 |
most recent matching ebuild isn't correct, then an =, ~ or * should be used to |
56 |
be more specific. However, if a dep says >=kde-base/kde-foo-2.2*, then I think |
57 |
dep_bestmatch() *should* find the most recent match for this dep. Again, if |
58 |
this is wrong, then it's up to the dep to be more specific. |
59 |
|
60 |
Since other people may be interested in this, I'm forwarding it to the list. |
61 |
|
62 |
Best Regards, |
63 |
|
64 |
-- |
65 |
Daniel Robbins <drobbins@g.o> |
66 |
President/CEO http://www.gentoo.org |
67 |
Gentoo Technologies, Inc. |