Gentoo Archives: gentoo-portage-dev

From: Jason Stubbs <jstubbs@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] quick questions about portage
Date: Fri, 23 Dec 2005 17:30:59
Message-Id: 200512240230.13136.jstubbs@gentoo.org
In Reply to: Re: [gentoo-portage-dev] quick questions about portage by Andrew Gaffney
1 On Saturday 24 December 2005 02:18, Andrew Gaffney wrote:
2 > Ricardo Loureiro wrote:
3 > > -----BEGIN PGP SIGNED MESSAGE-----
4 > > Hash: SHA1
5 > >
6 > > Hi all,
7 > >
8 > > I'm the guy trying to put the portage tree in a relational database
9 > > and making a portage-lite script to search and caculate deps from the
10 > > database. I have currently some questions I couldn't find looking at
11 > > the huge portage.py file:
12 > >
13 > > - - Where does portage saves information about installed files besides
14 > > the world file, like versions installed and such?
15 >
16 > /var/db/pkg/
17 >
18 > > - - I came across some dependancies like "useflag? ( ||
19 > > ( cat/package ) )". I can't find a logic in this and assume it's a
20 > > mistake, or am I missing something?
21 >
22 > "|| ( cat/pkga cat/pkgb )" means that either pkga or pkgb will satisfy the
23 > dependency.
24
25 If there is only one atom, there is no point. Ie. "foo/bar" is equivalent to
26 "|| ( foo/bar )". It says "you can choose any out of this 1 and only option."
27
28 > > - - What exactly are CDEPEND, PDEPEND and EAPI specified on the cache
29 > > format?
30 >
31 > I don't think CDEPEND is used anymore. PDEPEND is post-depend...packages
32 > that should be installed *after* the current one is emerged. I'm not sure
33 > about EAPI.
34
35 CDEPEND was never used. It has now been removed although it's forever taken
36 it's place within the flat_list keys. The value itself is now always empty
37 and nothing in portage ever accesses it.
38
39 PDEPEND is just RDEPEND. The only difference is that RDEPEND is currently
40 treated the same as DEPEND; that is, it is treated as if it is needed during
41 building even though it's only a runtime dependency. Usually (always?) you'll
42 that if PkgA PDEPENDs on PkgB then PkgB will DEPEND on PkgA.
43
44 EAPI is new. It specifies the version of the environment that is provided to
45 ebuilds. For example, if a new phase is provided the EAPI is bumped. Ebuilds
46 can use the new features before a supporting portage version is widely used
47 (EAPI-aware portages will mask ebuilds with EAPIs that it can't support).
48 Portage on the other hand can adjust how it deals with ebuilds based on the
49 EAPI that the ebuild requests.
50
51 --
52 Jason Stubbs
53 --
54 gentoo-portage-dev@g.o mailing list