Am 04.12.2010 01:23, schrieb Sebastian Pipping:
> Hello!
> 
> 
> Current situation
> =================
> Without specifying USE_PYTHON in /etc/make.conf ebuilds based on the
> python eclass will install packages for no more ABIs than the two active
> versions on the 2.x and 3.x lines.  To give an example: with Python 2.6,
> 2.7 and 3.1 installed and 2.7 set as the active 2.x Python version I
> would get files installed for python 2.7 and 3.1, but not 2.6.
> 
> Is that a sane default?  Especially when a new slot of Python arrives at
> the Gentoo tree, you run into situations with two slots of Python 2.x
> installed.  To have packages functioning with both, you would need a
> custom USE_PYTHON line like USE_PYTHON="2.6 2.7" - otherwise one of
> these slots' Python will be very limited.
> 
> This problem is made worse by the fact that USE_PYTHON has almost no
> documentation.  This bug shows well, that the current behavior is a
> surprising troublemaker:
> 
> https://bugs.gentoo.org/show_bug.cgi?id=347153

I think, the complete python code, behaviour and eclass is way too complicated 
to easily manage or
even understand it. E.g. why do we need 2 active versions by default? If i set 
e.g. python-2.6 as
default, i want everything to be installed for that and using it by default, 
unless i specify
something different. Nothing for python-2.7, nothing for python-3.1 or any 
other python version.

And USE_PYTHON is the wrong way to handle this. It is invisible, it only 
controls global settings
and together with other parts of the python eclass, it hides the dependency 
tree, so with
USE_PYTHON="2.6 2.7", all packages depend on both python versions, but the 
package manager does not
know about it.

I propose a package manager based solution just like the one i proposed and 
prepared for different
arches and crosscompilation. It is visible, easy to see and understand, allows 
per package control
and does leave the control to the package manager including the informations 
like the dependency tree.

> 
> 
> Proposed new situation
> ======================
> If I have a version of Python installed, it should be usable well.
> So USE_PYTHON is derived from the list of all available Python slots.
> Excluded are ABIs restricted by an ebuild, say by a line like
> 
>   RESTRICT_PYTHON_ABIS="3.*"
> 
> for software that does not build with Python 3.x.

I am against this proposal. I already masked python-3* on my system, because no 
package actually
needs it, but the current behaviour installs completly useless code for those 
versions. Same would
happen for all other, not active versions of python. One default active version 
should be enough, if
i want more, i can select and set it.

-- 
Thomas Sachau

Gentoo Linux Developer

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to