RSS

gnubiff改造中

gnubiffを新着メールの通知に使っているがまだGnome3に対応していない。このままだとDebianから削除される。これは困るがアップストリームが対応する気配が感じられないので自分でやってみることにした。結論からすると途中で壁にぶつかっている。

ガイドに従ってやってみた。Glade-2からGlade-3に変更するとかGnomeの古いコードを削るとかGTK+2の範囲でできる対応までは順調にできた。だがいざGTK+3に上げるとかlibpanel-applet-4.0に対応させようとするところで困難を極める。コードがひど混乱ぶりだ。C++を使っているのだがgtkmmを使っていない。キャストを使っているので型安全があやしい。ちょっとでも間違えるとさっさとSEGVで落ちてしまう。

UIがGnome(アプレット)・GTK+(独立アプリ)・systemtrayとあるがsystemtrayはGTK-3ではeggtrayiconに替わって(10年前のコードだぞ)GtkStatusIconを使わなければならない。しかしこれはGtkWidgetではないのでGtkWidget前提のコードでは破綻する。いやどうにかしたいけどUIの基底クラスで定義してあるもーん、まいったなーという感じである。

パネルアプレットはGnome3では大部違うし。書き換えも大変だな…。もっと恐しいのがネットワーク回り。POP・IMAPなどそれぞれのメールボックスに対応したクラスが独自実装で書いてあってsocketまで独自実装かよ。すくなくともここはGNU mailutilsぐらいで書き直したい。これって改造とかいう範囲でおさまらん気がする。

一からSystemtrayのソフトとして書いてそこから考えたほうがいい気がする。