[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00801] Re: configure 時のエラーについて
- Subject: [FDclone-users:00801] Re: configure 時のエラーについて
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Sat, 28 Jun 2008 01:18:35 +0900
しらいです。
In Message-Id <20080627093002.b89ff3c4.yasushi_imao@imao.jp>
Yasushi Imao <yasushi_imao@imao.jp>さんwrites:
> お世話になります。今尾です。
> > その挙動を示すのは configure の先頭行を /bin/sh から fdsh
> > に書換えた場合なんじゃないかと思うんですが、一応その環境でも
> > configure が成功するように修正を加えてみました。
>
> configure の先頭行はそのまま (つまり /bin/sh) で試しています。ただし、
> SHELL= は /usr/local/bin/fdsh を指定してある状態です。
おかしいですねー。その辺りの code は最初に起動された shell
が実行しているので、SHELL や CONFIG_SHELL の値に依存しない筈
なんですけどね。
> パッチのご提供ありがとうございました。が、unbound dovecot の両方とも最後
> までたどり着けませんでした。もはやこれは fdsh とはまったく関係ないお話か
> もしれませんが、念のためご報告しておきます。
最終的な調整は難しいかも知れません。configure の吐く code
はかなり bash や zsh に依存してしまっています。POSIX でも規
定されていないような細かい実装の影響を受けるので。
昔 NEWS-OS を使っていた頃、/bin/sh が素の Bourne shell だ
ったために autoconf の吐く configure が使えずに難儀してたこ
とがありますが、その頃から開発姿勢は変わってないようですね。
# 素の Bourne shell は関数すら実装されてないんですよ。それ
#で FDclone の Configure はそういう環境にも堪え得る設計にな
#ってます。
# Steve Bourne が Sun に移ってからの改良型 Bourne shell し
#か知らない人の方が多いとは思いますが、FDclone は BSD4 に付
#属していた頃の Bourne shell をベースに設計してます。
> checking for iconv declaration... ./configure:
> $as_me:$LINENO: result:${ac_t:-
> $am_cv_proto_iconv": bad substitution
> # checking の行と $as_me の行は実際には1行です。
やはりここに引っかかりましたか。本来の Bourne shell は ${}
の中に改行なんか入れられないんですよ。
これは bash 固有の仕様で、Bourne shell だけでなく Almquist
shell でも error になりますし、Z shell では出力結果が異なり
ます。
何でそんな code を入れるんでしょうね?尤もこれは autoconf
に含まれる code ではなくて dovecot の作者が書いた部分の code
なんですけどね。
で、そういう bash との仕様違いに関しては随分前から気にはし
ていまして、最新版だと pathname.h にそれに関する記述が書かれ
ていると思います。
この冒頭で comment out されている「BASHSTYLE」という定義部
分の comment を外すことで、出来るだけ bash に近い仕様で実装
されると思います。
因みに昨日の patch で修正された部分に関してですけど、明ら
かな bug 以外は、bash や Bourne shell の仕様を比較した上で、
bash 固有の仕様と判れば同様に BASHSTYLE のみの code にします。
拘るようですけど、FDclone は飽くまでも Bourne shell 準拠に
してますので。
> configure は終了しますが、その後の gmake 実行時に失敗します。
> # エラーメッセージは長くなってしまいますが、必要であれば添付、あるいは直
> # 送させていただきます。
configure で正しく環境検知が出来ていないということですね。
この辺りはまた後日検証してみます。
差分をざっと見た限りでは引用符の扱いの違いに起因しているよ
うな気がします。引用符や \ の挙動に関しては細かい仕様規定が
どこにもなくて、各 shell で独自仕様になってるんですよ。
bash 仕様が期待されているのだとしたら、上記の BASHSTYLE の
定義によりこちらも解消するかも知れませんね。
しらい たかし