Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[gentoo-user] PYTHON_TARGET errors

245 views
Skip to first unread message

Ralf

unread,
Mar 16, 2017, 9:20:02 PM3/16/17
to
Hi,

so I just emerged some unrelated packages, and then the following
happened when trying to update my system:

!!! The ebuild selected to satisfy ">=app-editors/gedit-3.22.0" has
unmet requirements.
- app-editors/gedit-3.22.0::gentoo USE="introspection python spell -test
-vala" ABI_X86="64" PYTHON_SINGLE_TARGET="-python3_4 -python3_5"
PYTHON_TARGETS="python3_4 -python3_5"

The following REQUIRED_USE flag constraints are unsatisfied:
python? ( exactly-one-of ( python_single_target_python3_4
python_single_target_python3_5 ) )

The above constraints are a subset of the following complete expression:
python? ( introspection exactly-one-of (
python_single_target_python3_4 python_single_target_python3_5 )
python_single_target_python3_4? ( python_targets_python3_4 )
python_single_target_python3_5? ( python_targets_python3_5 ) )


So somehow PYTHON_TARGET and PYTHON_SINGLETARGET got screwed on my
system. I know how I could fix this for gedit only, but then other
packages begin complaining about the same issue as well.

Anything helps!

Cheers
Ralf

Neil Bothwick

unread,
Mar 16, 2017, 9:30:02 PM3/16/17
to
Read the message again, it needs one of python3_4 or python3_5 in single target, you have neither.

Do you have any PYTHON entries in make.conf?
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Dale

unread,
Mar 16, 2017, 9:50:02 PM3/16/17
to
Ralf wrote:
On 03/17/2017 02:28 AM, Neil Bothwick wrote:
Read the message again, it needs one of python3_4 or python3_5 in single target, you have neither.
... And read mine :-)
I know.
And I know how I could fix that for single packages, but then the next package complains about the very same issues. So somehow 'default' settings seem not to apply any more.


Do you have any PYTHON entries in make.conf?
No, not yet. My profile:
default/linux/amd64/13.0/desktop/gnome/systemd

And I didn't do anything suspicious in the meanwhile, so for me it seems they changed something in the profile.

Thanks
  Ralf


I would check emerge --info just to confirm it.  If that shows a wrong setting, then you know it is a setting, somewhere.  If it doesn't, whole new can of worms. 

Dale

:-)  :-) 

Ralf

unread,
Mar 16, 2017, 9:50:02 PM3/16/17
to
On 03/17/2017 02:28 AM, Neil Bothwick wrote:
Read the message again, it needs one of python3_4 or python3_5 in single target, you have neither.
... And read mine :-)
I know.
And I know how I could fix that for single packages, but then the next package complains about the very same issues. So somehow 'default' settings seem not to apply any more.
Do you have any PYTHON entries in make.conf?
No, not yet. My profile:
default/linux/amd64/13.0/desktop/gnome/systemd

And I didn't do anything suspicious in the meanwhile, so for me it seems they changed something in the profile.

Thanks
  Ralf

Walter Dnes

unread,
Mar 16, 2017, 10:20:03 PM3/16/17
to
On Fri, Mar 17, 2017 at 02:09:29AM +0100, Ralf wrote

> So somehow PYTHON_TARGET and PYTHON_SINGLETARGET got screwed on my
> system. I know how I could fix this for gedit only, but then other
> packages begin complaining about the same issue as well.

No, it's not screwed up. gedit insists on python 3.x now in
PYTHON_SINGLE_TARGET, given your USE flags. Start from the beginning.
app-editors/gedit-3.22.0::gentoo USE="introspection python spell"
You have (via package.use, make.conf, or profile) invoked the "python"
and "introspection" USE flags for gedit. The bit...

> The following REQUIRED_USE flag constraints are unsatisfied:
> python? ( exactly-one-of ( python_single_target_python3_4
> python_single_target_python3_5 ) )

...says that you need "exactly-one-of" the following...
( python_single_target_python3_4 python_single_target_python3_5 )

Since you're using PYTHON_TARGETS="python3_4 -python3_5", the "local"
option is to add the following line to package.use to apply to gedit only.

app-editors/gedit python_single_target_python3_4

You might consider the "global" option, which is to change make.conf
to read PYTHON_SINGLE_TARGET="python3_4" if that doesn't cause rebuilds
all over the place.

In either case, when upgrading from python 3.4 to 3.5 in the future,
you'll have to change "3.4" to "3.5" in make.conf and/or package.use.

--
Walter Dnes <walt...@waltdnes.org>
I don't run "desktop environments"; I run useful applications

Ralf

unread,
Mar 16, 2017, 10:30:03 PM3/16/17
to

It tells me:
PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4"

So that's what I guess, that it's a setting somewhere... But where? Everything used to work before.

  Ralf

Ralf

unread,
Mar 16, 2017, 10:40:02 PM3/16/17
to
On 03/17/2017 03:19 AM, Walter Dnes wrote:
> On Fri, Mar 17, 2017 at 02:09:29AM +0100, Ralf wrote
>
>> So somehow PYTHON_TARGET and PYTHON_SINGLETARGET got screwed on my
>> system. I know how I could fix this for gedit only, but then other
>> packages begin complaining about the same issue as well.
> No, it's not screwed up. gedit insists on python 3.x now in
> PYTHON_SINGLE_TARGET, given your USE flags. Start from the beginning.
> app-editors/gedit-3.22.0::gentoo USE="introspection python spell"
> You have (via package.use, make.conf, or profile) invoked the "python"
> and "introspection" USE flags for gedit. The bit...
Yes, I know what is wrong. But it's not only wrong for gedit, other
packages will fail as well, if I correct the settings for gedit.
>
>> The following REQUIRED_USE flag constraints are unsatisfied:
>> python? ( exactly-one-of ( python_single_target_python3_4
>> python_single_target_python3_5 ) )
> ...says that you need "exactly-one-of" the following...
> ( python_single_target_python3_4 python_single_target_python3_5 )
>
> Since you're using PYTHON_TARGETS="python3_4 -python3_5", the "local"
> option is to add the following line to package.use to apply to gedit only.
Yep, i know, and then the next package complains. So why didn't this
happen before? What changed?
>
> app-editors/gedit python_single_target_python3_4
>
> You might consider the "global" option, which is to change make.conf
> to read PYTHON_SINGLE_TARGET="python3_4" if that doesn't cause rebuilds
> all over the place.
I already tried that. Then other packages complain because they are not
compatible to the settings gedit requires.
>
> In either case, when upgrading from python 3.4 to 3.5 in the future,
> you'll have to change "3.4" to "3.5" in make.conf and/or package.use.
Can't I just enable some default settings somewhere? I don't want to
introduce dozens of local settings for packages, especially as
everything used to work before.

Ralf

Walter Dnes

unread,
Mar 17, 2017, 12:50:03 AM3/17/17
to
On Fri, Mar 17, 2017 at 03:30:19AM +0100, Ralf wrote

> > Since you're using PYTHON_TARGETS="python3_4 -python3_5", the "local"
> > option is to add the following line to package.use to apply to gedit only.
> Yep, i know, and then the next package complains. So why didn't this
> happen before? What changed?

gedit's dependancies changed.

> Can't I just enable some default settings somewhere?

You *DO* have "some default settings somewhere". As you said to Dale

> It tells me:
> PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4"

> I don't want to introduce dozens of local settings for packages,
> especially as everything used to work before.

Sorry... you want/need several distinct packages. Most of them
currently need python_single_target_python2_7, but gedit currently needs
python_single_target_python3_4. Deal with it.

That's what package.use is for. In a binary distro, everything can
be synchronized to the same library dependancies. In a "rolling distro"
like Gentoo, not every library/package is updated simultaneously. One
package switches from python2_x to python3_x, and then another, and then
another. Compare two options...

PYTHON_SINGLE_TARGET="python3_4" in make.conf requires you to set X lines
"foo-bar/package python_single_target_python2_7" in package.use


PYTHON_SINGLE_TARGET="python2_7" in make.conf requires you to set Y lines
"foo-bar/package python_single_target_python3_4" in package.use


Currently X > Y, so stick with 2_7 as the default for now. Over time,
Y will increase, and X will decrease. When Y > X, switch make.conf to
PYTHON_SINGLE_TARGET="python3_4" and list the exceptions in package.use.

Ralf

unread,
Mar 17, 2017, 4:30:03 PM3/17/17
to
Hi,

everything works again after syncing the portage tree today -- without
the need to modify anything. So probably something was messed up upstream.

Ralf
0 new messages