Tcl/Tk 8.0.2p2jp-beta3 + tix 4.1.0jp.patch (原因はコイツ)


RedHat 5.1のCD-ROMから素直にTcl/Tk関係をインストールすると、入ってくる関連パッケージは以下のようになる。

tcl-8.0.2-16.i386.rpm
tk-8.0.2-16.i386.rpm
tix-4.1.0.6-16.i386.rpm

で、日本語を使いたかったのでJRPMからglibc対応版のをもらってきて入れたワケだが、こちらの内訳は

tcl-8.0p2jp-3glibc.i386.rpm
tk-8.0p2jp-3glibc.i386.rpm
tix-4.1.0.5jp-3glibc.i386.rpm

だ。ちょっとずつ微妙に古いのだった。人の目で見ればね。

だけど、tcl-8.0p2jp-3glibc.i386.rpmとtk-8.0p2jp-3glibc.i386.rpmを、rpm -Uvhでアップデート扱いで入れると、サクッと入っちゃったりするんだわ。思うに、バージョン番号の"8.0.2"よりも"8.0p2"の方が、文字列として重みが上だからなんじゃないかと思うんだけど… いいのかねこんなズサンで(笑) この辺がやっぱrpmのなんだかなぁな部分か。

できれば、バージョン番号の中を区切る'.'(ドットね)を認識して比較するようになってて欲しいよなぁ。

8.0.2 > 8.0p2jp
8.0.2 > 8.0p2jp.1
8.0.2 < 8.0p2jp.2

てな具合の不等式が成り立つのがいいんじゃないかと思うんだがどうだろうか。実際、バージョン番号の付け方ってのはいろいろな流派とか解釈、作法みたいなドロドロがあって難しい。

でもって、tix-4.1.0.5jp-3glibc.i386.rpmだけは明らかにtix-4.1.0.6-16.i386.rpmよりも古い、と判断されてしまって、アップデートでインストールができないのだった(笑) どういうワケだかRedHat 5.1でTcl/Tkに依存するパッケージって、実はいろいろあって、それもほとんどが管理ツールなのだ。fstool、helptool、printtool、timetoolなんて類の、なんたらtoolってヤツはみんなそう。オレってば全然この手のツールを使わないで、設定ファイルをガシガシ手でいじってるから、中身がどうなってて何してくれるツールかよくわかってないんだけどさ(笑)

しょうがねぇな、いったん消すか、と思って rpm -e tix などとカマしてみると、
libtix4.1.8.0.so is needed by tkinter-1.5.1-4
などとおっしゃる。tkinterって誰?オレ使ってるつもりねぇぞ(笑)などと思ってさらにシツコク rpm -e tkinter などとカマす。すると
tkinter is needed by kernelcfg-0.4-8
tkinter is needed by netcfg-2.19-4
tkinter is needed by usercfg-3.5-7
などとズラリとお並びになってらっしゃるでわないか。うむ〜(-_-#)

tix-4.1.0.5jp-3glibc.i386.rpmは見なかったことにしよう(笑)

管理ツールなんぞいらん(そもそも安定稼働に入ったあと、そんなにkernelだのnetworkだのキモの環境設定なんて頻繁に変えるもんなの?)のだが、入ってるもんを一度も試しもしないうちに闇に葬りさるのもなぁ。もったいないし。実はこのkernelcfgだのnetcfgだのっつ〜のがすっげぇイカスツールだったら知らぬは損なりだ。(実は後でそっと試した。オレに取ってはどうでもいいツールだった)

てなワケで、TclとTkだけ日本語化された微妙に古いヤツに差し替えて、この状態でxcdroast-0.96dのmakeをしたのだった。makeそのものはほとんど問題なくて、必要だった作業はconfigureのscriptをちょっといじって、tcl8.0jpとかtk8.0jpなどの"jp"のついたディレクトリからライブラリを探すようにする場当たりなパッチを1つ追加しただけだ。で、できあがったxcdroastを起動すると…

なぜか起動直後にcore吐いてお亡くなりになる。ダメじゃんコレじゃ。

よくヤクザ映画なんかで「貴様、吐いたツバ飲まんとけよ」などと言い放って逃げていく若い衆が出てくるが(笑)、ここはしかたないから吐いたcoreを飲んでgdbで調べてみた。するとどうも、tixをやはり差し替えてやらねばならんのではないか?という説が浮上してきた。

まぁそらそうだよなぁ。Tcl、Tk、Tixと3つの互いに関係し合うライブラリのうち、TclとTkだけちょっと古いのに差し替えてあるんだもん。どっかのサポートに電話したら、その組み合わせはサポート対象外です、ハイおしまい。1件2万円です毎度あり、というパターンだよ。(原因はコイツ)なんてタイトルには書いてるが、どう見ても原因はオレじゃんねぇ。わははは。

仕方ないから自分でtcl/tk 8.0.2にjpなパッチをあててライブラリを作り直してみることにした。

結局のところ、RedHatのCD-ROMに入っているソース・パッケージ tcltk-8.0.2-16.src.rpm と、JRPMに置いてある tcltk-8.0p2jp-3.src.rpm では、ベースとしているtcl/tkは同じtcl8.0p2/tk8.0p2だった。違うのは、tclXとtixがそれぞれtclX8.0.2.tar.gzとTix4.1.0.006.tar.gzと新しくなっていたのだ。してみると、8.0.2って数字はこのtclXから持ってきてんのかな?なんか変な感じ。

とはいえ、tcl/tkの日本語パッチも新しいのが出ているかも知れん。sraのftpサイトを漁ってみると、tcl/tkのパッチはなかったものの、tix4.1.0jp.patchというのを発見した。これをTix4.1.0.006.tar.gzのソースツリーにあててやればいいんじゃなかろうか。JRPM版のほうはなぜかこれがあたってないのだ。パッチの日付を見ると98/07/16などとなっているから、当時はまだなかったんだな、きっと…

JRPM版のSPECファイルをベースにいろいろと新しく手直ししたものをパッケージ置き場に置いておく。だけど、tcl/tkのソースそのものは含めていない(だってデカイんだもん)ので、SPECファイルを見て適宜ftpで持ってくるか、またはRedHatの2枚目のCD-ROMに入っているtcl/tkのソース・パッケージを使うなりしよう。

作成されるtclやtkなどのパッケージのバージョン番号にはjpを含めてない。ちょっと失敗したかな。tcl/tkみたいに、バージョンが4.2とか7.6とか8.0とか、さらに日本語化の有無で動きが違う可能性があるパッケージを平和に共存させる際の、パッケージ命名の作法なんかのガイドラインとかが打ち出されたりすると赤帽ももっと良くなると思うんだけどな。今はバータリー指向だしなぁ。

あと、元にさせてもらったJRPMのパッケージには、TkSTEP対応パッチやPowerPC向けのパッチなども含まれていたのだが、大変申し訳ないがオレ的には使わないのであてなかった。TkSTEPには興味があるのでそのうちあててパッケージを作り直そうとは思っているが、いまパッケージ置場に置いてあるものには含まれていない。必要な人はJRPM版とコンダラ版を見比べて修正し、自分でmakeしようね。なぁに、修正なんてすぐに終るって。makeはえれー時間かかるけどね。わはは。

さらに、tcltk-8.0.2のソース・パッケージからは、他にもtclx-8.0.2-16glibc.i386.rpmとexpect-5.24-16glibc.i386.rpmというパッケージが作成されるんだけど、これはパッケージ置場には置いてない。オレってばこれ使ってないし、使い方もわからんし。すまんけど、必要なら自分でmakeしてくれ。

さて、新調したtcl/tk/tixのパッケージを入れ直し、xcdroast-0.96dをmakeしなおしてみる。サクサクとmakeは終り、実行してみると…

おぉ、今度はcore吐かずに動くぜ。

さっそく、ちょうど聞いていた「耳をすませば」のサントラを丸ごと焼いてみる。おぉ、やっぱ4倍速は速いねぇ。できたCDを再生してみると、ちゃんと音も出るぜ。よしよし。

で、できたパッケージをパッケージ置き場にソースともども置いておくことにする。これで、香織の好きな歌だけ集めたお気に入りCDを焼いてプレゼントしてあげよう。お母さんといっしょから中島みゆきまでを網羅したCDを(笑) オン・ザ・フライでも焼けるのはわかってるけど、それだと好きな曲を集めて1枚に、ってワケにいかないからなぁ。MP3じゃ香織がミニコンポで聞けないし、やっぱ音楽CDも焼けるに越したことはないぜ。


メール 戻る