1999/11/19    Tcl/Tk 8.2.2 and TkDesk-1.2

Tcl/Tk と関連ライブラリー群(Expect、TclX、Tix、Itcl)を最新版へ更新。Tcl/Tk 8.2x は国際化対応をうたっており、また、JIT をサポートする。TkDesk-1.2 が Tcl/Tk 8.x に対応したので試すことにした。結果は後述。

[1] Tcl/Tk 8.2.2 Family

Expect-5.31、Itcl-3.0.1 は、既に Tcl/Tk 8.2x 対応になっている。TclX は 8.2.x には正式には対応していない(現時点での最新版は TclX-8.1.1)が、 configure 時に適当なパラメータを与えることによりだます。Tix-4.1.0.6 については、私家版パッチをあて対処する。さらに、TkDesk-1.2 に添付の Itcl のパッチも含める。
使ったSPECはこれ、できたRPMSは
tcl-8.2.2-1a.ppc.rpm
tk-8.2.2-1a.ppc.rpm
expect-5.31-1a.ppc.rpm
tclx-8.1.1-1a.ppc.rpm
tix-4.1.0.6-1a.ppc.rpm
itcl-3.0.1-1a.ppc.rpm
で、対応するSRPMは
tcltk-8.2.2-1a.src.rpm
である。RPMS には、LinuxPPC-1999 標準の Tcl/Tk 8.0x へのシンボリックリンクを含めてある。今の所、8.0x 系の共有ライブラリーを必要とするアプリケーションも動いているように見えるが、いつものように使う場合は自己責任。

これを入れた後で、TkDesk-1.2 をコンパイルしてみた。何のパッチをあてることもなく LANG=ja_JP で起動すると、日本語テキストなどを開くことができるが、XIM が全く使えない。これは、TkDesk のせいではなく、Tcl/Tk 8.2.x の方の問題である。そこで、SRA より Tcl/Tk 8.1.1 用の i18n パッチをとりよせ、Tcl/Tk 8.2.2 にあててみる。8..2.2 に無理矢理対応させた私家版パッチはこれこれ。また、このパッチは一部の構造体の構造を変えてしまうので、TkDesk の方(Blt ルーチンの一部)でも、私家版パッチが必要であった(さもないと、セグメンテーションフォールトする)。TkDesk のコンパイル時には、CC_OPTS に '-DI18N_IMPROVE' を加える。残念ながら、上述の SRA のパッチでは On-The-Spot の入力ができず、また、これは TkDesk 側の問題であるが、変換確定後の入力がテキストに挿入されない。これは、Tcl7.6/Tk4.2 の時に比較して大幅な後退なので、結局、Tcl/Tk8.2.2 で TkDesk を使うことは断念した。また、Tcl/Tk 8.0x 系にはやはり SRA による日本語化パッチがあるが、こちらの方は完成度が高い。しかし、やはり構造体の変更をともなうので、共有ライブラリーに英語版との互換性がない。従って、Tcl/Tk を日本語版に置き換えた場合には、Tcl/Tk 関連の共有ライブラリーを使うアプリケーション全てを、日本語化フラッグ(KANJI_FLAGS)をたてて再コンパイルしなくてはならない。もちろん、日本語化したバージョンを /usr/local にインストールすることもできるが、Tkmail、Ical など、Tcl7.6jp/Tk4.2jp 環境で日本語化して使っているアプリケーションの 8.0x 対応をする元気もでてこないので、Tcl/Tk 8.2x の XIM まわりが正式に改善されるのを待つことにする。すでに、JE2.0x などで、日本語版 Tcl/Tk 8.0x をベースにしている環境ならば、TkDesk にパッチをあてずに(blt の構造体パッチは別途必要)、日本語化フラッグをたててコンパイルするだけで幸せになれるはず。
 

[2] TkDesk-1.2

以上の経緯を経て、結局、Tcl7.6jp/Tk4.2jp で使うことにした。この場合には、例によって、アスキー外半角文字の問題があり、日本語化パッチが必要になる。使った私家版パッチはこれ、また、SPECはこれ、できたRPMは
jp-TkDesk-1.2-1a.ppc.rpm
で、対応するSRPMは
jp-TkDesk-1.2-1a.src.rpm
である。使うには、
jp-tcltk-7.6p2_4.2p2-2b.ppc.rpm
がインストールしてあることが前提。いつものように、使う場合は自己責任。


Back to Keisuke Fujii's MkLinux/LinuxPPC Life