On Sun, Jun 06, 2010 at 01:03:48AM +0200, Thomas Sachau wrote:
> Am 05.06.2010 20:31, schrieb Harald van Dijk:
> > On Sat, Jun 05, 2010 at 05:49:08PM +0200, Thomas Sachau wrote:
> >> If any package does inherit python or distutils eclass, then those 
> >> eclasses do pull in
> >> "dev-lang/python", which is unversioned, so it will always pull in the 
> >> latest version, in this case
> >> python-3*. You could change this, so it allows any major installed slot to 
> >> satisfy the python
> >> dependency.
> > 
> > A dependency on dev-lang/python *is* satisfied by any slot, any version. 
> > You've
> > been told so already, if I recall correctly.
> 
> Every slot and every version *should* satisfy a "dev-lang/python" dependency, 
> but currently such
> unspecified version dependency does automaticly pull in the latest 
> version/slot, which in case of
> python does mean python-3*, even when you have e.g. python:2.6 installed.

Fine, I'll be as explicit as possible: not quite. I have a Python 3-free 
system. I created
a dummy ebuild that does nothing but pull in unversioned python. Let's
see how it behaves.

$ emerge -pv python

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  NS   ] dev-lang/python-3.1.2-r3 [2.6.5-r2] USE="gdbm ipv6 ncurses 
readline sqlite ssl threads tk (wide-unicode) xml -build -doc -examples 
-wininst" ELIBC="(-uclibc)" 9,558 kB

$ cat test-2.0.ebuild 
KEYWORDS="~amd64"
SLOT="0"
DEPEND="dev-lang/python"

$ emerge -pv test

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] test/test-2.0  0 kB [1]

Total: 1 package (1 new), Size of downloads: 0 kB
Portage tree and overlays:
 [0] /usr/portage
 [1] /etc/portage/overlay

Note how python 3 is *not* pulled in, despite an unversioned dependency on 
dev-lang/python.
You only get that if you tell portage to try and update dependencies as
well, and yes, if you do that, it's only fair that it attempts to update python.

Reply via email to