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
signature.asc
Description: OpenPGP digital signature