1 |
On 11/03/2012 09:29 AM, Helmut Jarausch wrote: |
2 |
> Hi, |
3 |
> |
4 |
> since some Python packages are still broken w.r.t. Python3 and still |
5 |
> more w.r.t. Python3.3, I'd like to disable |
6 |
> installation of Python3 related files for same (but not all) packages. |
7 |
> |
8 |
> How can this be achieved? |
9 |
> |
10 |
> Many thanks for a hint, |
11 |
> Helmut. |
12 |
> |
13 |
|
14 |
Could you give an example? |
15 |
|
16 |
This is a bug. The package has to ensure not to compile for incompatible |
17 |
implementations. We have eclasses for that. |
18 |
|
19 |
As for python3.3 it may be likely that packages using the old |
20 |
python/distutils eclasses haven't catched up yet. (please note that 3.3 |
21 |
is hardmasked for a reason) |
22 |
|
23 |
There are two variables which control multiple abi support and can be |
24 |
set in make.conf: |
25 |
USE_PYTHON (for old python/distutils eclass, most packages still use it) |
26 |
PYTHON_TARGETS (for new python-r1/distutils-r1 or the python-distutils-ng) |
27 |
|
28 |
If USE_PYTHON is unset then default value includes ABI for active |
29 |
version of Python 2 (if it is installed) and ABI for active version of |
30 |
Python 3 (if it is installed). I haven't tried setting USE_PYTHON |
31 |
per package, you could try setting it in |
32 |
/etc/portage/env/<category>/<package> |
33 |
you would set it like |
34 |
USE_PYTHON="2.6 2.7 3.2" |
35 |
But don't complain if this breaks something. The eclass is not designed |
36 |
for such micro-management. |
37 |
|
38 |
PYTHON_TARGETS is easier for this matter, cause it's a use-expand. |
39 |
You would set it in make.conf like this |
40 |
PYTHON_TARGETS="python2_7 python3_2" |
41 |
or to enable all just PYTHON_TAGETS="*" |
42 |
Setting it per package is perfectly valid and you can use package.use: |
43 |
app-xxx/pornview -python_targets_python2_7 python_targets_python3_3 |
44 |
(this will only work if the ebuild uses the mentioned eclasses) |
45 |
|
46 |
But again... it's an ebuild bug. File one. |