Description of Problem: shared objects, compiled with libtcl, have wrong soname. As a result, package postgresql-tcl provides libtcl.so.0, that actually belongs to tcl. [root@leon leon]# rpm -q --whatprovides libtcl.so.0 tcl-8.3.3-65 tcl-8.3.3-65 postgresql-tcl-7.1.3-2 [root@leon leon]# rpm -qf `locate libtcl.so.0` tcl-8.3.3-65 Looks like the problem is in tcl-8.3.3-makecfg.patch: - SHLIB_LD="${CC} -shared" + SHLIB_LD="${CC} -shared -Wl,-soname,libtcl.so.0" I built scotty myself, and it provides libtcl.so.0 too. Version-Release number of selected component (if applicable): tcl-8.3.3-65
The hard-coded soname is getting put in the tclConfig.sh script, so that every program that builds there own private/extended tcl interpreter gets the same soname, which the loader finds. Removing the -Wl,soname from the tclConfig and keeping it in the tcl Makefile only will fix the problem.
In tcltk-8.3.5-76 and later, the upstream library naming is now being used (ie libtcl8.3.so, libtk8.3.so). However for the time being there a 8.0 compatibility symlinks left in (libtcl.so.0 -> libtcl8.3.so, etc). These will probably be removed later. The above mentioned makecfg hardcoding patches are no longer included.
DT_SONAMES were added to tcltk libs in 8.3.5-84 btw. The aforementioned symlinks are now libtcl.so -> libtcl8.3.so, etc.