1 |
Am 06.06.2010 13:09, schrieb Matti Bickel: |
2 |
> On 06/06/2010 12:40 PM, Thomas Sachau wrote: |
3 |
>> My base proposal for this is something like this: |
4 |
>> |
5 |
>> Every package defines the language(s), where it could be installed for multiple slots, e.g.: |
6 |
>> |
7 |
>> MULTI_SLOT="python" or |
8 |
>> MULTI_SLOT="python ruby" |
9 |
>> |
10 |
>> Additionally, it should define the supported slots, something like this: |
11 |
>> |
12 |
>> SUPPORTED_RUBY_SLOTS="1.8 1.9" or |
13 |
>> SUPPORTED_PYTHON_SLOTS="2.5 2.6 3.0 3.1" |
14 |
> |
15 |
> Don't get me wrong, but isn't that what the python developers guide[1] |
16 |
> says? ("python.eclass supports PYTHON_DEPEND helper variable, which |
17 |
> allows to specify minimal and maximal version of Python.") |
18 |
> |
19 |
> I thought the whole point of this debate was that nobody cared enough to |
20 |
> convert all those ebuilds to use PYTHON_DEPEND properly. The proper fix |
21 |
> is to convert ebuilds to the new syntax. |
22 |
> |
23 |
|
24 |
The current python eclass also uses some vars to specify the supported slots, yes, but it is more |
25 |
complex and harder to maintain in addition to the fact, that the dependency part is hidden from the |
26 |
package manager. |
27 |
|
28 |
I dont think, that you can tell portage with the current implementation, that it should only install |
29 |
python modules for python-2.6 by default and additionally python modules for python-3.1 for selected |
30 |
packages. Portage will also install newer slots of python, even when the user does not request them |
31 |
and no package requires them, which will result in unneeded and unused versions on disk. |
32 |
|
33 |
And if you add a python slot or remove one, portage currently is not able to see that and to |
34 |
reinstall packages, which had modules installed for that slot. You need another tool |
35 |
(python-updater) to check that and to call the needed reinstalls. |
36 |
|
37 |
With my solution, there are only modules installed for selected slots. And if you have selected a |
38 |
slot, the related python version is pulled in by portage. If you disable that slot, you can |
39 |
reinstall those packages with --newuse option and then can remove that python slot with --depclean. |
40 |
No need for another tool, simple handling by the package manager |
41 |
|
42 |
-- |
43 |
Thomas Sachau |
44 |
|
45 |
Gentoo Linux Developer |