Gentoo Archives: gentoo-dev

From: drobbins@g.o
To: achim@g.o
Cc: gentoo-dev@g.o
Subject: [gentoo-dev] Re: portage fix
Date: Thu, 29 Mar 2001 17:47:03
Message-Id: 20010329174701.D15371@cvs.gentoo.org
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.