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.
