After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 423110 - pyspi fails to build with pyrex 0.9.5.1a
pyspi fails to build with pyrex 0.9.5.1a
Status: RESOLVED FIXED
Product: pyspi
Classification: Deprecated
Component: general
CVS HEAD
Other All
: Normal normal
: ---
Assigned To: Zack Cerza
PySPI Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-03-26 22:05 UTC by Tim Lee
Modified: 2007-08-21 21:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to make pyspi build with Pyrex 0.9.5.1a (1.70 KB, patch)
2007-08-21 21:39 UTC, Zack Cerza
committed Details | Review

Description Tim Lee 2007-03-26 22:05:35 UTC
Please describe the problem:
I'm building pyspi on suse i586 with pyrex version 0.9.5.1a and getting
the failure below (also attached full build log). If I substitute pyrex
version 0.9.4.1 pyspi builds fine. This happens with both with 0.6.1 and
svn.

Steps to reproduce:


Actual results:
building 'atspi' extension
/usr/src/packages/BUILD/pyspi-0.6.1/cspi.pxd:52:107: Exception value
incompatible with function return type
/usr/src/packages/BUILD/pyspi-0.6.1/cspi.pxd:53:108: Exception value
incompatible with function return type
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1538:118: Exception value
incompatible with function return type
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1554:64: Invalid operand
types for '|' (AccessibleDeviceEventType; AccessibleDeviceEventType)
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:163:7: 'Display' is not
declared
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:163:7: 'Display' is not a
type identifier
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:164:30: Cannot convert
'void (*)' to Python object
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:164:29: Cannot convert
Python object to '<error>'
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:168:22: Cannot convert
'<error>' to Python object
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:189:27: Type
'__pyx_t_5atspi_bool' not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:321:42: Cannot assign type
'SPIBoolean' to '__pyx_t_5atspi_bool'
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:507:35: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:778:44: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:845:42: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:889:45: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:897:42: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:905:44: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:918:53: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:926:51: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:934:48: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1118:35: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1342:7: 'Display' is not
declared
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1342:7: 'Display' is not a
type identifier
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1345:7: 'KeySym' is not
declared
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1345:7: 'KeySym' is not a
type identifier
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1347:7: 'KeyCode' is not
declared
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1347:7: 'KeyCode' is not a
type identifier
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1343:30: Cannot convert
'void (*)' to Python object
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1343:29: Cannot convert
Python object to '<error>'
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1348:31: Cannot convert
'<error>' to Python object
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1352:21: Cannot convert
'<error>' to Python object
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1378:40: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1439:37: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1482:47: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1523:19: Type 'SPIBoolean'
not acceptable as a boolean
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1544:8: Cannot assign type
'__pyx_t_5atspi_bool' to 'SPIBoolean'
/usr/src/packages/BUILD/pyspi-0.6.1/pyspi.pyx:1574:55: Type 'SPIBoolean'
not acceptable as a boolean

Expected results:


Does this happen every time?
Yes

Other information:
Comment 1 Zack Cerza 2007-08-21 17:30:30 UTC
I'm not sure how, but I didn't see this report until now, I'm sorry.

Ugh, I'm not sure why Pyrex has a problem with pyspi now. I spent a few minutes looking into it but didn't make much progress. I'm currently working on making pyspi obsolete anyway... :)
Comment 2 Tim Lee 2007-08-21 17:50:32 UTC
The problem was caused by the update of
pyrex from version 0.9.4.1 to 0.9.5.1a. Pyrex is now apparently much
stricter about requiring matching return types from c functions.

In short python booleans are int
but /opt/gnome/include/at-spi-1.0/cspi/spi-impl.h (from the at-spi-devel
package) has 'typedef unsigned int SPIBoolean'. So it appears to be the difference between unsigned int and int that is causing pyrex to fail.
Comment 3 Zack Cerza 2007-08-21 18:00:56 UTC
Oh! I have SPIBoolean declared as an enum, which means it'll be signed; spi-impl.h just declares it as an unsigned int. 
Comment 4 Zack Cerza 2007-08-21 21:39:30 UTC
Created attachment 94076 [details] [review]
Patch to make pyspi build with Pyrex 0.9.5.1a

I just committed this patch that makes pyspi build with the new Pyrex. Build tested on F7.