View previous topic :: View next topic |
Author |
Message |
are Apprentice
Joined: 03 Jan 2006 Posts: 188
|
Posted: Sun Jan 06, 2013 8:09 am Post subject: [SOLVED]: python_single_target_python2_7 ... |
|
|
Guys,
I am in heavy IT industry for more then 20 years, I am fluent in brainfuck and won some perl obfuscation contests but THIS is insane:
Code: |
The following required use constraints are unmet for dev-libs/gobject-introspection-1.34.2-r1:
* || ( python_targets_python2_7 ) ^^ ( python_single_target_python2_7 ) python_single_target_python2_7? ( python_targets_python2_7 )
|
I am starring at this line for several minutes now and everytime when I reach the end I have forgotten how it started.
My settings are:
*/* PYTHON_TARGETS: -* python2_7
*/* PYTHON_SINGLE_TARGET: -*
and these worked very well just a week ago. Any hints please?
Last edited by are on Mon Jan 07, 2013 5:46 am; edited 1 time in total |
|
Back to top |
|
|
floppymaster Developer
Joined: 07 Jul 2010 Posts: 229 Location: Detroit, MI, USA
|
Posted: Sun Jan 06, 2013 9:29 pm Post subject: |
|
|
Don't put -* in those variables.
Here are some reasonable settings.
PYTHON_TARGETS="python2_7"
PYTHON_SINGLE_TARGET="python2_7" |
|
Back to top |
|
|
floppymaster Developer
Joined: 07 Jul 2010 Posts: 229 Location: Detroit, MI, USA
|
Posted: Sun Jan 06, 2013 9:37 pm Post subject: |
|
|
To expand on that, this condition means that exactly one of ( python_single_target_python2_7 ) must be enabled.
^^ ( python_single_target_python2_7 )
I know the error message is bad here; typical REQUIRED_USE garbage messaging. |
|
Back to top |
|
|
are Apprentice
Joined: 03 Jan 2006 Posts: 188
|
Posted: Mon Jan 07, 2013 12:02 am Post subject: |
|
|
FloppyMaster, thanks a lot for the help.
I understand that part, which means Exlusive OR
Code: | ( python_targets_python2_7 ) ^^ ( python_single_target_python2_7 ) |
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.
Best regads! |
|
Back to top |
|
|
floppymaster Developer
Joined: 07 Jul 2010 Posts: 229 Location: Detroit, MI, USA
|
Posted: Mon Jan 07, 2013 5:24 am Post subject: |
|
|
You might find the Gentoo Python user guide helpful.
http://www.gentoo.org/proj/en/Python/python-r1/user-guide.xml
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. |
|
Back to top |
|
|
are Apprentice
Joined: 03 Jan 2006 Posts: 188
|
Posted: Mon Jan 07, 2013 5:58 am Post subject: |
|
|
floppymaster wrote: |
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.
Best regards! |
|
Back to top |
|
|
ewill3 n00b
Joined: 22 Feb 2004 Posts: 3
|
Posted: Wed Jan 09, 2013 12:59 am Post subject: |
|
|
floppymaster wrote: | Don't put -* in those variables.
Here are some reasonable settings.
PYTHON_TARGETS="python2_7"
PYTHON_SINGLE_TARGET="python2_7" |
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).
$ emerge -pqv 'dev-libs/gobject-introspection'
[ebuild U ] dev-libs/gobject-introspection-1.34.2-r1 [1.32.1] USE="-doctool {-test} (-doc%*)" PYTHON_SINGLE_TARGET="python2_7%*" PYTHON_TARGETS="python2_7%*"
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.
Unfortunately, it still falls over:
$ emerge --oneshot dev-libs/gobject-introspection
>>> Emerging (1 of 1) dev-libs/gobject-introspection-1.34.2-r1
* gobject-introspection-1.34.2.tar.xz SHA256 SHA512 WHIRLPOOL size ... [ ok ]
* No Python implementation selected for the build. Please set
* the PYTHON_SINGLE_TARGET variable in your make.conf to one
* of the following values:
*
* python2_7
* ERROR: dev-libs/gobject-introspection-1.34.2-r1 failed (setup phase):
* No supported Python implementation in PYTHON_SINGLE_TARGET.
...
I can post a formal bug report (on what? portage? this particular package?) if you like, but am wondering how to fix this. _________________ It's still legal to remain .sigless |
|
Back to top |
|
|
jrussia Tux's lil' helper
Joined: 29 Aug 2012 Posts: 89 Location: Chicago
|
Posted: Wed Jan 09, 2013 1:41 am Post subject: |
|
|
floppymaster wrote: |
$ emerge -pqv 'dev-libs/gobject-introspection'
[ebuild U ] dev-libs/gobject-introspection-1.34.2-r1 [1.32.1] USE="-doctool {-test} (-doc%*)" PYTHON_SINGLE_TARGET="python2_7%*" PYTHON_TARGETS="python2_7%*"
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. |
|
Back to top |
|
|
|