Sunday, 2 May 2021

BigSur X11 IM 解決篇

結局、Anthy と UIM が動いたので Mojave から BigSur にあげて動かなくなったX11関係は復活しました。

MacUIM だいぶ古くなってたからな。

学科のLT大会を聞きながら bottle 作ってました。

狙いは Google のかな漢字変換 Mozc と fctix(中国製の変換サーバ)を xterm (uxterm は resource名のオプションを設定するscript)に接続するだったんですが...

xterm は kinput2 に相当する helper がないとだめ。XIMは古くて ibus と fctix が開発されてるんだが、

  uim は開発が停滞 Mozc と接続するには Mozc にいろいろ入れないといけないのだが、pull req を蹴られたらしい
  Anthy は未踏の scheme base の変換エンジンだがいかんせん古くて、こっちも停滞
  fctix は OS X で build した痕跡がない (sys/endian.h を使ってるとか)

とかいろいろあって。でも、Anthy/uim は古いとはいえども、Linux ではmajorだったので今でも動く。ところが、

  さすがに、どっちも10年前のソースコードなので古い

って問題が。さすがに32bitだったりK&Rだったりはしないわけですが。macOSがあほだってのもあるね。

  fcitx-mozc / fctix は Qt が邪魔。。C++ なので極めてソース互換性が低い。少しの版違いで確実に動かなくて直し方が非自明
  だが、Qt を外してしまえばまぁ。Qt4 というお荷物があるらしい。そして、fcitx-mozc は Qt4 依存。
  cmake の option や build option で Qt4 を外せばよい

        uim は make が xcrun "$*" なので libtool がバグる。なので、/usr/bin/make を使う
  PKG_CONFIG_PATH を指定しないと /opt/X11 を見つけられない 
  configureのsnfprintf のバグの検出がバグってて、しかも、独自snprintfの実装がva_argの破壊代入で古すぎる
  そもそも、configure 単体では動かなくて git submodule 関係を処理する shell script 付き
  sed で brew の中からパッチ当て
  install が svg と png を間違えてる。エラーを無視する shell wrapper で対処

  AnthyはソースコードがEUCだが、まぁ、configure/compile には支障はない 
  Anthyは configure に std_configure_args を渡すってのに気がつけばあとは問題無し

とかなんとかいろいろありましたが、binary bottle まで構築しました。ユーザは自分だけだろ。

暇があったら、fcitx の ソースコードを macOS対応に変更してbuild をすれば、Mozc で xterm が動くはずです。
あるいは、uim に submoudle として MozC を足して、パッチをあてるんだな。

https://github.com/ie-developers/homebrew-ie

No comments: