Bug 620211
Summary: | python-psyco needs porting to python 2.7 in F14 and devel | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Thomas Spura <tomspur> | ||||
Component: | python-psyco | Assignee: | Conrad Meyer <cse.cem+redhatbugz> | ||||
Status: | CLOSED WONTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | low | ||||||
Version: | 14 | CC: | a.badger, akurtako, awilliam, cse.cem+redhatbugz, dmalcolm, jlaska, mads, rnovacek, tadej.j | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2011-09-02 17:51:05 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 619913 | ||||||
Attachments: |
|
Description
Thomas Spura
2010-08-01 14:54:56 UTC
CC'ing David Malcolm, because he works on python-peak-rules which is similar to this failure (see bug #620023) (In reply to comment #0) > This is not an easy rebuild, because this requires porting to python 2.7 Agreed; this one looks difficult, more difficult than python-peak-utils-assembler. Does anything within the distribution depend on python-psycho? i.e. how urgently do we need to port this? Created attachment 436883 [details]
Patch that lets psyco build with Python 2.7
It looks that some undocumented change happened in Python 2.7. Name of some #defines changed in the file opcode.h. At least two of them changed:
JUMP_IF_TRUE -> JUMP_IF_TRUE_OR_POP
JUMP_IF_FALSE -> JUMP_IF_FALSE_OR_POP.
Both defines has same values with new version, so I think it only needs to be renamed in the source. So I create a patch that seems to make this package compile with Python 2.7, but then it fails with older Python versions.
(In reply to comment #3) (snip) > It looks that some undocumented change happened in Python 2.7. Name of some These aren't undocumented, in that changes to bytecodes are alluded to in the release notes. See: http://bugs.python.org/issue4715 and http://svn.python.org/view/python/trunk/Doc/library/dis.rst?r1=70071&r2=70070&pathrev=70071 > #defines changed in the file opcode.h. At least two of them changed: > JUMP_IF_TRUE -> JUMP_IF_TRUE_OR_POP > JUMP_IF_FALSE -> JUMP_IF_FALSE_OR_POP. > > Both defines has same values with new version, so I think it only needs to be > renamed in the source. So I create a patch that seems to make this package > compile with Python 2.7, but then it fails with older Python versions. I don't think this will work as-is: they have different semantics. The Python 2.6 JUMP_IF_{TRUE|FALSE} peek the value at the top of the stack and conditionally branch based on it. The Python 2.7 JUMP_IF_{TRUE|FALSE}_OR_POP peek the value at the top of the stack and then either branch or pop the value. So the code needs to take into account the stack effects of these bytecodes. See the svn link above. Oh, I haven't been enough thorough finding documentation of this change. The porting of this code will definitely need more python-core-hacking-fu than I have... So, from a blocker POV, this is a blocker because python-psyco winds up on the DVD compose. It does that because eclipse-pydev requires it for i686 only (psyco is 32-bit only). This is documented in the changelog: Thu Dec 11 2008 Alexander Kurtakov <akurtako> 1:1.3.24-3 - Require python-psyco to speed up debuging. it reads like it's not actually *required*, and eclipse will work without it, just it'll be slower to do python debugging. Given that, I think a reasonable solution for F14 Alpha is to drop the dependency from eclipse-pydev until psyco is ported. -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers I have pushed an eclipse-pydev update which disables the dependency on python-psyco for now; this doesn't fix psyco, obviously, but at least solves the dependency issues. -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers Removing dependency on 620623. That issue has been worked around temporarily by dropping the eclipse-pydev requirement on python-psyco I've dropped python-psyco from rawhide for now. If someone wants to take this upstream and debug and test that's all well and good, but until then it doesn't work with the python we have in f-14. I understand that this is all we can do and that there is no good solution to this. FWIW it has the consequence that a yum upgrade from f13 (with python-psyco) to f14 fails badly. I guess it should be mentioned in the release/update notes that it no longer works and that the package should be removed. Perhaps it would be better to orphan it properly so it (automatically, I assume) gets in the list of orphaned packages? Alternatively, could we push a "I know I am broken" package without any dependencies to f14? Conradm, since upstream for psyco isn't really alive (the project's leader and ideas have been migrated into pypy) and this is retired on F15/rawhide, do we want to close bug? @Toshio, sounds good to me. |