[Bug 359857] Re: blt does not work as currently packaged

pauljohn32 pauljohn at ku.edu
Fri Sep 11 19:15:51 UTC 2009


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 ghowlett at grandecom.net, gah at siliconmetrics.com

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
ubuntu-bugs at lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs




More information about the universe-bugs mailing list