[Bug 359857] Re: blt does not work as currently packaged
Bill Metzenthen
billm at melbpc.org.au
Fri Sep 11 08:44:46 UTC 2009
First, I should declare that I don't know much about the internal
workings of Python, Tcl, or BLT.
This bug has been stopping one of my programs from working. Waiting for
a fix to appear demonstrably didn't work :-( hence I have tackled the
problem with a brute force approach and have found a solution which
works for me. Others can judge whether it is the correct solution.
Starting from the top, I found that in my case the sequence was like this:
Python calls Pmw.ButtonBox
Pmw.ButtonBox calls Pwm._checkForBlt, which calls Tcl (via Tk) ('package', 'require', 'BLT')
Tcl goes through its magic and calls Blt_Init in libBLT.2.4.so.8.4
Boom!
I noticed something suspicious when I got this far into the bowels: The
current Ubuntu version of BLT installs libBLT.2.4.so.8.4 and
libBLT.2.4.so.8.5, which are presumably meant to be used with tcl8.4 and
tcl8.5 respectively. A bit of digging showed that Pmw was using tcl8.5.
The question then was why was Blt using the wrong version? More brute-
forcing showed that libBLT.2.4.so.8.4 was being loaded because
/usr/lib/blt2.4/pkgIndex.tcl said to.
I haven't done any coding in Tcl for some time but it didn't take much
skill to see that /usr/lib/blt2.4/pkgIndex.tcl doesn't appear to know
about tcl8.5. It appears that whoever maintains BLT has forgotten to
update library/pkgIndex.tcl.in in the sources. By making the following
change (and installing the updated /usr/lib/blt2.4/pkgIndex.tcl which
results) I have managed to get my Python program work again ;-)
$ diff -u blt-2.4z/library/pkgIndex.tcl.in~ blt-2.4z/library/pkgIndex.tcl.in
--- blt-2.4z/library/pkgIndex.tcl.in~ 2009-09-11 18:38:35.000000000 +1000
+++ blt-2.4z/library/pkgIndex.tcl.in 2009-09-11 18:33:37.000000000 +1000
@@ -15,8 +15,10 @@
set taillib ${version}.so.8.2
} elseif {[package vcompare [info tclversion] 8.4] < 0} {
set taillib ${version}.so.8.3
- } else {
+ } elseif {[package vcompare [info tclversion] 8.5] < 0} {
set taillib ${version}.so.8.4
+ } else {
+ set taillib ${version}.so.8.5
}
if { [info commands tk] == "tk" } {
--
blt does not work as currently packaged
https://bugs.launchpad.net/bugs/359857
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
ubuntu-bugs at lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
More information about the universe-bugs
mailing list