I have not tried that fix, but I've been meaning to point out what I learned in the Fedora/RedHat bug tracker on this same problem. Go here
https://bugzilla.redhat.com/show_bug.cgi?id=504388 Look for a post by Carlos Vidal. He shows that if you hack two lines in blt, you can stop it from crashing. The problem that affects most of us is that blt is using some outmoded approaches to draw text and the tcl/tk group refuses to repair those components, they insist instead we should do things differently. I believe your patch is achieving the same result. By telling your system to use the older tcl/tk, you are avoiding the use of the fancy fontwork. I made RPMs for blt after applying that patch, I probably can make deb too for Ubun/Debian users. I wrote directly to the BLT author about this several months ago, and did not get an answer. So the entirety of my knowledge is now on display for you! To [email protected], [email protected] Hello, how are you doing? I haven't found any guidance about whether BLT can be adapted to tk 8.5 and anti aliased fonts. So I'm asking the expert. We have use BLT for years in the Swarm Simulation System (www.swarm.org). User issues have developed with tk8.5. If tk is not compiled with "--disable-xft", then programs that use BLT almost invariably crash. I bet you know this already--its some issue about text can't be written on a bitmap of depth 1 using xft. I found a few posts about it. I've tried the simple fix of going through the Blt code and changing all of the places where the depth of anything is set to 1 to some higher value like 8 or 24, but I still get crashes. Running in the debugger seems to indicate the problem is especially likely in writing in margins, where text is rotated. If you can help us by speaking up on this, we would be grateful. Programs crash like this: $ ./heatbugs X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 151 (RENDER) Minor opcode of failed request: 4 (RenderCreatePicture) Serial number of failed request: 3758 Current serial number in output stream: 3764 is caused by a bug in tcl/tk 8.5 that is triggered by usage of Tk_DrawChars() in blt. I gather that one of the significant improvements in tk 8.5 is support for xft fonts, and it turns out that the bug is caused by usage of xft fonts. The workaround for now is to recompile tcl/tk with --disable-xft. That makes the fonts uglier, but after that Swarm programs do not crash anymore! Apparently, this problem has been known since 2007. Joe English, one of the Tk maintainers, says "The preferred solution is to not call Tk_DrawChars() on drawables of depth 1. This is preferable in any event, so that compositing will work." (http://objectmix.com/tcl/303826-8-5b3-linked-against-x11.html) It could be that means they will refuse to fix Tk, and blt will have to change... There is an example tcl program in that note that can be used to test blt and tk. It is simple. Put this in a file "blttest.tcl" #! /usr/bin/wish package require Tclx package require BLT namespace import blt::* tabset .ts -side left -rotate 90 -activebackground green .ts insert end .tstab -text "Test" pack .ts In this post: December 10, 2007: How --enable-xft breaks backwards compatibility - ObjectMix Forum http://objectmix.com/tcl/313024-how-enable-xft-breaks-backwards-compatibility.html "Another solution is to pass a full-depth Pixmap to Tk_DrawChars() instead of a Bitmap. Extensions will generally want to do this anyway so that compositing works properly." April 7, 2009 [Xquartz-dev] X Error http://lists.macosforge.org/pipermail/xquartz-dev/2009-April/002252.html This explains the tk problem, says we should look for pixmaps of depth 1 and change to 8. But toward the end it says there is a deeper X11 problem. ** Bug watch added: Red Hat Bugzilla #504388 https://bugzilla.redhat.com/show_bug.cgi?id=504388 -- 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 [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
