Namazu-devel-ja(旧)


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

Re: 2003/11/07 -> 2003/11/08 update gets no Warning



寺西です。

knok@xxxxxxxxxxxxx wrote:
> 
>   私も色々と考えなおしてみました。
> 
> At Tue, 18 Nov 2003 19:12:49 +0900,
> Tadamasa Teranishi wrote:
> > なぜなら、namazu.cgi をパスなしで起動した時はカレントディレクトリ
> > の .namazurc を読むがパス付きで namazu.cgi を起動すると、
> > namazu.cgi のあるディレクトリの .namazurc を読むからです。
> >
> > # これってバグでは? ちょっと不自然な振る舞いかと思います。
> 
>   バグとするかどうかは微妙なところですが、これまで動作していたのは偶然
> だったんだなあ、とは思います。

カレントディレクトリの .namazurc を読むのはやっぱりバグでしょ。

# 1.4 はそのおかげで偶然動いていただけですし。
 
>   考えてみると、ltmain.sh が生成する wrapper の問題のようにも思います。
> そもそもこれは .libs 以下に実体が生成されるような状況でもそのまま動作
> できるようにするためのものですが、微妙に動作状況が異なってしまうのはあ
> まりよろしくないかなと。
>
>   wrapper 側で argv[0] を original のまま保存しつつ実体を exec する、
> というのが本来あるべき姿ではないのかな、と自分は思いました。

はい。wapper なのですから、そうあるべきですね。

カレントディレクトリの .namazurc を読むのがとっても気持ち悪いので、
2 以外に 3 の src/.libs/ に .namazurc をコピーという話をしましたが、
きちんと wrapper 側で argv[0] に設定する方がまともな対策です。
(もちろん、2 の対策よりも)

この対策を 4 としておくと、
4. wrapper 側で argv[0] を original のまま保存しつつ実体を exec する

これを支持します。
ただし、この場合でも
> パス指定なしで起動した際に、きちんと namazu.cgi のあるディレクトリを
> 取り出せるようにデバッグすることも必要かと。
のデバッグは必要だと思います。
このデバッグを行わなくても 4 の対策をすれば、make check は
通りますが、このデバッグによりカレントディレクトリの .namazurc は
読まなくなります。

>   exec 系 syscall を使えば実現可能だとは思うのですが、shell scirpt で
> はできるものなんでしょうかね? exec -a name は bash 以外にもあるのかな...

/bin/sh (実態が bash ではないもの) にあれば問題ないんですよね?
調べてみます。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E