On Sun, Nov 30, 2014 at 3:50 PM, Michał Górny <[email protected]> wrote:
>> > B. they cause issues with REQUIRED_USE on other packages (like libpeas
>> > that supports only one version of python2 and one of python3). Even
>> > though PYTHON_SINGLE_TARGET results in effective use of a single impl,
>> > PYTHON_TARGET USE-dep requests full PYTHON_TARGETS match on the dep.
>> > Therefore, the user needs to disable other implementations anyway to
>> > get the expected result.
>>
>> I don't understand this part. Can you please explain it? Maybe an example?
>
> gedit and libpeas, with gedit depending on libpeas. libpeas supports
> one version of Python 2 and one of Python 3, and gedit just one
> in general:
>
> libpeas is REQUIRED_USE=?? ( 2.* ) ?? ( 3.* )
> gedit is REQUIRED_USE=^^ ( 3.* )
>
> So libpeas needs python-r1 with specific REQUIRED_USE. gedit would be
> a candidate for python-single-r1 but...
>
> p-s-r1 enforces ^^ only on PYTHON_SINGLE_TARGET. So I end up with
> something like:
>
>   PYTHON_TARGETS="3.3 3.4" PYTHON_SINGLE_TARGET="3.4"
>
> and this enforces dependency on libpeas[3.3,3.4] which contradicts its
> REQUIRED_USE. So we need also REQUIRED_USE=^^ ( 3.* ). But basically,
> the whole mess with the second variable doesn't really help here.
>

What I take away from this is that the libpeas ebuild is really weird:
supporting exactly one python2 and one python3 sounds like a horrible
hack that should be fixed.

I don't think this crazy REQUIRED_USE constraint is something we
should design for in the eclasses. Let's fix libpeas to work with
multiple python3 versions instead.

Reply via email to