trac BROKEN on AMD64: "neo_cgi.so: undefined symbol: Py_InitModule4"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
The Trac Project |
Fix Released
|
Unknown
|
|||
clearsilver (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Hardy |
Invalid
|
Undecided
|
Unassigned | ||
Intrepid |
Fix Released
|
Undecided
|
Unassigned | ||
trac (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Hardy |
Won't Fix
|
Undecided
|
Unassigned | ||
Intrepid |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Old versions of python-clearsilver are broken on amd64 with python2.5 as the
default python.
The build system was broken such that it just built the extension for python2.4 and
copied it for python2.5. This was resolved in
http://
This makes python-clearsilver, and hence trac unusable for amd64 users on releases
where python2.5 is default.
It has been fixed in the development release by syncing that fix from Debian.
The patch attached cherry-picks the fix to the hardy package.
TEST CASE:
* Install trac
* Run "python -c 'import neo_cgi'"
Expected:
* Exit code 0, no error messages
Currently:
* "neo_cgi.so: undefined symbol: Py_InitModule4"
* Non-zero exit code.
There should not be any regression as the module is completely broken for amd64 users,
and wrong for other architectures as well.
===
Original report:
Binary package hint: python-clearsilver
I created a new Trac environment and run tracd. After accessing it the first time I received following output on the console:
[bragi@ragnarson ogloszenia]$ tracd --port 8000 /home/bragi/
-------
Exception happened during processing of request from ('127.0.0.1', 43756)
Traceback (most recent call last):
File "SocketServer.py", line 463, in process_
self.
File "SocketServer.py", line 254, in finish_request
self.
File "SocketServer.py", line 521, in __init__
self.handle()
File "BaseHTTPServer
self.
File "/var/lib/
gateway.
File "/var/lib/
response = application(
File "/var/lib/
return self.applicatio
File "/var/lib/
env_paths)
File "/var/lib/
req.hdf = HDFWrapper(
File "/var/lib/
raise TracError, "ClearSilver not installed (%s)" % e
TracError: ClearSilver not installed (/usr/lib/
-------
Tracd used Python 2.5 by default. When run against 2.4 there is no such error.
Ubuntu Feisty AMD64, python-clearsilver 0.10.3-4.1
Changed in trac: | |
status: | Unknown → Fix Released |
I can confirm the error too.
Py_InitModule4 in 64bit systems was renamed to Py_InitModule4_64 to allow addressing more than 4Gbytes. See http:// www.python. org/dev/ peps/pep- 0353/.
In http:// svn.python. org/projects/ python/ trunk/Include/ modsupport. h
#if SIZEOF_SIZE_T != SIZEOF_INT
/* On a 64-bit system, rename the Py_InitModule4 so that 2.4
modules cannot get loaded into a 2.5 interpreter */
#define Py_InitModule4 Py_InitModule4_64
#endif
So perhaps there was an configuration error when compiling the module.
I did the same installation of Trac 2 days ago in a x386 and it worked. Today when I tried in a amd64, I got the error.