Namazu-devel-ja(旧)


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

[Q] namazu doesn't exec in Japanese



笠原です。

fj.question.unix に、野首さんの記事へのフォローとして次のような記事
を投稿しました。

できれば、引用した記事の次の part も読んで下さい。:-)
Path: news2.sra.co.jp!m-kasahr
From: m-kasahr@xxxxxxxxx (Motoyuki Kasahara)
Newsgroups: fj.questions.unix
Subject: Re: [Q] namazu doesn't exec in Japanese
Date: 16 Jun 2000 04:25:08 GMT
Organization: Software Research Associates, Inc., Japan
Lines: 51
Message-ID: <8ica74$1oln$1@xxxxxxxxxxxxxxxx>
References: <8i8iks$2ds$1@xxxxxxxxxxxxxxxxxxx>
	<8iaf9u$9mv$1@xxxxxxxxxxxxxxxxxx>
NNTP-Posting-Host: srapc517.sra.co.jp
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
X-Trace: sranhh.sra.co.jp 961129508 58039 133.137.20.77 (16 Jun 2000 04:25:08 GMT)
X-Complaints-To: news@xxxxxxxxx
NNTP-Posting-Date: 16 Jun 2000 04:25:08 GMT
X-Newsreader: mnews [version 1.22] 1999-12/19(Sun)
Xref: news2.sra.co.jp fj.questions.unix:4325

笠原です。

* From: knok@xxxxxxxxxx 
* Message-ID: <8iaf9u$9mv$1@xxxxxxxxxxxxxxxxxx>

> <http://www.namazu.org/ml/namazu-users-ja/msg00497.html>
> 
>   にあるように、configure 時に --with-included-gettext を指定して
> build したものを使えば良いのではないでしょうか。
> 
> # Solaris の NLS がまずいとか? その辺よく知らないんですけど。

namazu の想定している localedir と実際にメッセージカタログの置かれて
いるディレクトリがずれているのが原因のようです。

Solaris にもとからある gettext を使うと、メッセージカタログ namazu.mo
は $(libdir)/locale/... の下にインストールされますが、namazu 自身は
$(datadir)/locale/... の下を見に行ってます。

GNU gettext を使用する場合 (つまり --with-included-gettext を指定した
場合)は、メッセージカタログが $(datadir)/locale/... にインストールさ
れるようになるので、問題はありません。

何故インストール先が Solaris gettet と GNU gettext 変わるのかというと、
おそらく「GNU gettext であればメッセージカタログは機種非依存なので
$(datadir) の下に置くが、それ以外は依存してるかどうか分からないので、
$(libdir) の下に置く」というルールにしているのだと思います。

で、namazu の想定しているディレクトリと何故ずれるのかというと、
src/Makefile.am に

    localedir   = $(datadir)/locale

と書いてあるからですね。(^^;)
というわけで、次のパッチを当てれば直ると思います。
(パッチを当ててから再度コンパイルするには automake が必要になります。)

--- Makefile.am.orig	Sun Feb 20 14:24:58 2000
+++ Makefile.am	Fri Jun 16 12:58:10 2000
@@ -13,7 +13,7 @@
 bin_PROGRAMS = namazu
 libexec_PROGRAMS = namazu.cgi
 
-localedir   = $(datadir)/locale
+localedir   = $(prefix)/$(DATADIRNAME)/locale
 confdir     = $(sysconfdir)/$(PACKAGE)
 indexdir    = $(localstatedir)/$(PACKAGE)/index
 

________________________________________________________________
                                    笠原 基之(かさはら もとゆき)
ですが、本当は

	localedir = $(prefix)/$(DATADIRNAME)/locale

とするのは間違っていて、configure.in の中で

	if test $DATADIRNAME = 'share' ; then
	   localedir='$(datadir)/locale'
	else
	   localedir='$(libdir)/locale'
	fi
	AC_SUBST(localedir)

とでもするほうが正しいです。configure の --daradir, --libdir
オプションが使われたときに最初の方法だとうまくいかないからです。

ただ、po/Makefile.in.in でも

	datadir = $(prefix)/@DATADIRNAME@

なんてことをやってますので、やるならこっちも直さないと駄目です。
つまり GNU gettext は GNU Coding Standards の `The Release Process'
の章あたりを正しく理解して作られてないんです。

「やれやれ」でしょ? 私はこの問題に先月後半はまってました。
________________________________________________________________
                                    笠原 基之(かさはら もとゆき)