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.
