but what about that second, which pulls python_targets_python2_7 if python_single_target_python2_7 is set:

Code:

python_single_target_python2_7? ( python_targets_python2_7

In general these python stuff confuses the hell out of me. The fact that we need python_targets is bad already! (As far as I can remember there are no gcc_targets and also no java_targets. perl?). But now we have even two and I wonder on the pros and cons of that design approach.

Finally I found out, that I could remove again the PYTHON_SINGLE_TARGET="python2_7" completely. It looks like it was only temporally necessary for paludis.

We have the python_targets stuff because Gentoo lets you install more than one version of Python at once, and each version needs a separate copy of any installed code at run time.

Perl only allows one version at once.
Java allows multiple versions, but they can share the same compiled code (jars).
GCC allows multiple versions, but it produces native machine code that does not require an interpreter.

Python is most similar to Ruby and PHP, which have similar use-expand flags.

Java allows multiple versions, but they can share the same compiled code (jars).

If I am not misguided there are dependencies to a certain runtime. You can't run 1.7 jars on 1.4 JRE and I am confident that you can not run any 1.6 JAR on a 1.7 JRE (watch out for validateTree() for example). Still we are fine without JVM_TARGETS. Instead of you have to eselect you jvm and that mechanism worked well on python for years.

Furthermore I wonder why we implement TARGETS and SINGLE_TARGET instead of just fixing the few showstoppers (like java-toolkit) and port them to python3 OR just stick with python2. These TARGETS are useful for perhaps 3% of your user-base (while these users are capable to work around) but they hit 100% of the users who have no interest in python/ruby/bloat at all.

Nevertheless it is working now at least and I thank you for kind help.

Just to drive everyone crazy: I'm seeing a similar problem in =dev-libs/gobject-introspection-1.34.2-r1. I've already changed the variables to these values in /etc/profile/make.conf and fiddled a bit with /etc/portage/package.use/gobject-introspection (python_targets_python2_7 and python_single_target_python2_7 being the relevant "use flags", according to the docs).

Why the %* at the end of the target variables? Is this a bug or a feature? Obviously it's at least responding to my settings, so that's a plus.

I can post a formal bug report (on what? portage? this particular package?) if you like, but am wondering how to fix this.

% means it is a new USE flag option for this build
* means it is a new USE flag change for the build on your machine (e.g. if you choose to rebuild this later with "doctool" enabled then you would see "doctool*")

Also, the particular bug you are seeing right now looks like it was fixed in the Portage tree today, if you sync now it will hopefully be resolved.