1 |
On Sun, Nov 30, 2014 at 3:50 PM, Michał Górny <mgorny@g.o> wrote: |
2 |
>> > B. they cause issues with REQUIRED_USE on other packages (like libpeas |
3 |
>> > that supports only one version of python2 and one of python3). Even |
4 |
>> > though PYTHON_SINGLE_TARGET results in effective use of a single impl, |
5 |
>> > PYTHON_TARGET USE-dep requests full PYTHON_TARGETS match on the dep. |
6 |
>> > Therefore, the user needs to disable other implementations anyway to |
7 |
>> > get the expected result. |
8 |
>> |
9 |
>> I don't understand this part. Can you please explain it? Maybe an example? |
10 |
> |
11 |
> gedit and libpeas, with gedit depending on libpeas. libpeas supports |
12 |
> one version of Python 2 and one of Python 3, and gedit just one |
13 |
> in general: |
14 |
> |
15 |
> libpeas is REQUIRED_USE=?? ( 2.* ) ?? ( 3.* ) |
16 |
> gedit is REQUIRED_USE=^^ ( 3.* ) |
17 |
> |
18 |
> So libpeas needs python-r1 with specific REQUIRED_USE. gedit would be |
19 |
> a candidate for python-single-r1 but... |
20 |
> |
21 |
> p-s-r1 enforces ^^ only on PYTHON_SINGLE_TARGET. So I end up with |
22 |
> something like: |
23 |
> |
24 |
> PYTHON_TARGETS="3.3 3.4" PYTHON_SINGLE_TARGET="3.4" |
25 |
> |
26 |
> and this enforces dependency on libpeas[3.3,3.4] which contradicts its |
27 |
> REQUIRED_USE. So we need also REQUIRED_USE=^^ ( 3.* ). But basically, |
28 |
> the whole mess with the second variable doesn't really help here. |
29 |
> |
30 |
|
31 |
What I take away from this is that the libpeas ebuild is really weird: |
32 |
supporting exactly one python2 and one python3 sounds like a horrible |
33 |
hack that should be fixed. |
34 |
|
35 |
I don't think this crazy REQUIRED_USE constraint is something we |
36 |
should design for in the eclasses. Let's fix libpeas to work with |
37 |
multiple python3 versions instead. |