On Mon, 13 Apr 2015 07:48:25 +0200 Alan McKinnon <alan.mckin...@gmail.com> wrote:
> On 13/04/2015 03:07, »Q« wrote: > > On Sun, 12 Apr 2015 21:35:07 +0300 > > Matti Nykyri <matti.nyk...@iki.fi> wrote: > > > >>> On Apr 12, 2015, at 20:23, »Q« <boxc...@gmx.net> wrote: > >>> > >>> On Sun, 12 Apr 2015 11:12:38 +0200 > >>> "J. Roeleveld" <jo...@antarean.org> wrote: > >>> > >>>> On Saturday, April 11, 2015 08:42:20 PM Alan Grimes wrote: > >>> > >>>>> PYTHON_TARGETS="${PYTHON_TARGETS} python2_7 python3_4" > >>>>> PYTHON_SINGLE_TARGET="python2_7" > >>>> > >>>> These are set in your profile, please do not override this. > >>>> In other words, please remove these 2 lines. > >>> > >>> I'm not the OP. (I spend less time than him on maintaining my > >>> system.) > >>> > >>> Should those variables really not be set in make.conf? I added > >>> them to make.conf some time back because portage complained about > >>> them, and if I comment them out, it complains again, like so: > > > >>> The following REQUIRED_USE flag constraints are unsatisfied: > >>> python? ( exactly-one-of ( python_single_target_python3_3 > >>> python_single_target_python3_4 python_single_target_python2_7 ) ) > > > > [snip] > > > >> This is because you have set the "python" use flag in your > >> make.conf (or package.use). > >> > >> Remove the python useflag and the problem goes away. It is not set > >> by the profile but by you. Do you really need it? > > > > I enabled it globally (in make.conf), but I think I only need it > > for one or two packages. If I remove it from USE, I get portage > > complaining about other things. > > > USE="python" is one of those flags that has no accurate meaning in > real life, and the user needs to make an informed decision. It > doesn't work like USE="sse" for example, which means packages that > can use the sse instruction set will compile for it. It's a fairly > exact meaning. > > USE="python" means "use python to do stuff" but stuff is not defined > and it's usually hard to find out what it is for a given package. For > some it means to build optional extra tools that run under python, > for some it means to create python language bindings, and for others > it could even mean some critical system function that is implemented > in python and eats your kittens if not enabled. (sort of like how > portage is implemented in python; there's no USE for it but you get > the idea). > > Usually, USE="python" should be set per-package if you need what it > does. I had it in make.conf myself in my early days and kept getting > into circular dependencies. Sorting that out took some effort. > > Portage will almost certainly complain if you take something with > far-reaching effects as USE="python" in make.conf and remove it. > > So, take each thing it is complaining about and enable or disable it > based on what you need. Tweak as necessary to get the result you want. Thanks -- that all makes sense. I'm pretty sure I have USE="python" because I thought something like "I'm going to have python, so I might as well let things use it", which I now see to be muddle-headed at best. Since it's not causing me any troubles for now, I'll wean myself off of USE="python" when there's some in which I can afford to fix whatever I break during the process.