Red Hat Bugzilla – Bug 263221
python-sqlite symbol collision back
Last modified: 2007-11-30 17:12:14 EST
bug 231848 is back with the sqlite module integrated into python. symclash says:
# ./symclash.py /usr/lib64/python2.5/lib-dynload/*.so \
Clashes by library:
Clashes for /usr/lib64/python2.5/lib-dynload/timemodule.so:
with /usr/lib64/python2.5/lib-dynload/datetime.so => inittime inittimezone
Clashes for /usr/lib64/python2.5/lib-dynload/_sqlite3.so:
with /usr/lib64/httpd/modules/mod_mem_cache.so => cache_init
Clashes for /usr/lib64/httpd/modules/mod_mem_cache.so:
with /usr/lib64/python2.5/lib-dynload/_sqlite3.so => cache_init
Clashes for /usr/lib64/python2.5/lib-dynload/datetime.so:
with /usr/lib64/python2.5/lib-dynload/timemodule.so => inittime inittimezone
Clashes for /usr/lib64/python2.5/lib-dynload/_ctypes_test.so:
with /usr/lib64/python2.5/lib-dynload/_ctypes.so => module_methods
Clashes for /usr/lib64/python2.5/lib-dynload/_ctypes.so:
with /usr/lib64/python2.5/lib-dynload/_ctypes_test.so => module_methods
(reassigned, since I already have a bug to track getting this fixed in httpd; it
needs to be fixed in _sqlite3.so too)
Created attachment 237231 [details]
This is a minimal patch for the issue. (tested to build only)
Note that this is a regression since F7 and it breaks several web applications.
... and hence, please fix for F8.
How is this a regression, because we didn't ship sqlite in Fed-7 and do in Fed-8?
The sqlite module in python looks like a complete namespace violation, AFAICS
the only thing that should be exported directly from the entire .so is
init_sqlite3() ... even the same file that exports "cache_init" also exports
"new_node" and "cache_get" *sigh*.
So I'm hesitant to add just a tiny patch that fixes this one symbol clash.
I can fairly easily get it down to a reasonable number of better named
functions (init_sqlite3 + one pysqlite_* for each file), but even then I don't
want to put it into our package unless upstream takes it -- as it's bound to
cause conflict as we update to newer upstreams.
python-sqlite2-2.3.3 is in F7. And in fact, it's also still in F8! Which is fubar.
I gave a minimal patch with minimal risk. A complete fix would be upgrade the
copy of python-sqlite bundled in the Python tarball to 2.3.3. Or to stop
shipping the old, broken copy of sqlite2 as well as the new, fixed one.
Ok, I see that this patch is a minimal pysqlite2-2.3.3 update ... so I'm much
happier with the patch from comment#2.
And a Fed-8 blocker issue came up that required a python update, so I added the
patch and it should be in GA.
python-2.5-15.fc7 has been pushed to the Fedora 7 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update python'
python-2.5-15.fc7 has been pushed to the Fedora 7 stable repository. If problems still persist, please make note of it in this bug report.