Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gettext/autoconf/automake/libtool バージョン



反応が遅くなってしまいましたが、

On Tue, 14 Oct 2003 19:09:12 +0900
knok@xxxxxxxxxxxxx wrote:

>   警告をいくつか発しながらも動作するようにはなったのですが、やはりそろ
> そろ新しいツール群を標準にした方がいいのかなあ、と感じました。
> 
>   しかしながら一般的に利用されているバージョンがいまいちよくわからない
> のですが、どのあたりを標準にするのが良いでしょうか。このツール類はバー
> ジョン毎に微妙に互換性があったりなかったりするようで、なかなか落としど
> ころが難しいです...

autoconfはもう2.13はステでもいいんじゃないですかね。

automakeは1.6以降のリリースにAPI versionという概念が入って、
1.4系(というか1.4-p6)、1.6系、1.7系が共存可能になっているの
で無理にversionを引き上げなくてもいいと思います。その代わり、
サポートするAPI versionはどれか一つに絞るべきでしょう。

libtoolは1.5はまだよく見ていません。(汗

gettextはちょっと話が長くなるな...
例えば非互換に関しては、これも0.11.5以前しか見ていませんが、

  * gettextizeの--intlオプションが0.11以降入っていて、これを
    付けないとlibintlがコピーされない。一方、0.10.40以前で
    --intlを指定するとエラーになる。
  * 0.10.36以降のgettextizeはpo/ChangeLogを書き換える(個人的
    にはあまり好きな挙動ではない)。しかも、0.11以降ではさら
    に書き換えられるファイルが増えた。
  * 0.11.3以降ではautopointというスクリプトが入ってgettextize
    はobsoleteになった。これはCVSレポジトリが収められたtarball
    を展開し、configure.{ac,in}のAM_GNU_GETTEXT_VERSIONマクロ
    を見て、該当するバージョンのlibintlをcheck outするという
    もの。古いバージョンのlibintl(0.10.35まで)も取り出せるが、
    AM_GNU_GETTEXT_VERSIONマクロは0.11以降にしか用意されてない。

という具合です(他にもなんかあったかも)。

で、他のプロジェクトでは非互換にどう対処しているのか、いくつか
調べてみると、

 * GNOME2 - GLib2にglib-gettextという0.10.35の頃のgettextize
            の独自修正版が入っていて、それを使えというお約束
            になっている。

 * gaim - GNOME2にportされているがglib-gettextは使用せず、
          代わりにsetup-gettextというwrapper scriptを使用。
          Qtopia版があるせいか?

 * GnuPG - GNU gettext 0.10.40のlibintlをまるごとcvs addして、
           gettextizeは使っていない。

となっていました。

ここで、もう一つNamazu固有の事情として、

 * libnmzのリンク時にlibintlが必要になるので、GNU gettextは
   あらかじめインストールすべきである。
 * しかしながら、SolarisではSun版のgettextを使いたくないので
   configureに--with-included-gettextをつけて同梱のlibintlを
   使うようにしなければならない。

を挙げなければなりません。ただ、考えてみたら後者の場合でも
--with-libintl-prefixのようなconfigureオプションがあれば、
libintlを同梱する必要はなくなりますね(実際に0.11の時点でm4
マクロが修正されて、--with-libintl-prefixが使えるようになっ
ています)。ならば、libintlをコピーする必要性も最早ないので、
gettextizeの使用そのものをやめてもいいんじゃないかなという
気がしますが、どうでしょうか? そうすれば非互換で悩むことも
ないですし。


  A A
= . . =
   V
end
Ryuji Abe