Fedra 8 のあててはいけないパッチ2008年05月28日 21時02分20秒

久々に Fedora 8 の namazu.spec を確認したところ、愕然としました。

確認したのは、namazu-2.0.18-3.fc8.src.rpm で、ここにはパッチが3つ含まれています。

1. namazu-newgettext3.patch

2. namazu-fixinutf8.patch

3. namazu-multilib.patch

このうち、1 のパッチは環境変数 LANGUAGE のふるまいに関するもので、作成意図は妥当なのですが、残念ながらパッチにバグがあり、意図通りには動作しません。

2 のパッチに関しては、RedHat9 時代に既に問題があるパッチであることは指摘していましたが、未だに当たっているとは驚きです。 このパッチはあててはいけない問題のあるパッチです。

詳しくは

http://www.namazu.org/ml/namazu-devel-ja/msg04227.html

http://www.namazu.org/ml/namazu-devel-ja/msg03625.html

をご覧下さい。

3 のパッチは、multilib 対応のためのパッチでしょうが、意図不明です。 RPM では prefix が /usr の場合、nmz-config --libs で -L/usr/lib が含まれるが、これを削除しているということなのだとは思います。 なお、-L/usr/lib が含まれると何か不具合がでるというこはないと思うので削除する必要はないのではないかとも思います。(私が認知していないだけで、実害があるのかもしれませんが...。)

しかし、SRPM でインストール先を変更してビルドした時には単純に -L オプションを削除したのでは、問題が生じるのではないかと思います。 そのため -L/usr/lib の場合のみ削除するというのであればまだわかるのですが、それなら、似たようなものとして --cflags で -I/usr/include を削除するように書いているので、単純な削除ではなく、こちらに合わせた修正が良いのではないかと思います。 これについては -L/usr/lib の場合は削除するように今後ソースを修正しようかとは思います。

ということで、(程度の差はあれ) Fedra の Namazu パッケージに含まれる3つのパッチはどれも問題があります。 Fedra は RPM パッケージではなく、ソースからコンパイルしてインストールするか、標準の namazu.spec を使ってコンパイルとインストールを行いましょう。

追記:

3 のパッチですが、configure で libdir のパスが '${exec_prefix}/lib' で固定されているため、64bit の場合、-L/usr/lib では問題があるということのようです。(-L/usr/lib64 なら問題なし?) ただ、それを解決するための方法として -L を削除するのは、安直な気はします。

本質的には configure (の元となる configure.in) に手を加えるべきでしょうね。これは 新しいバージョンの autoconf を使って configure を作り直すだけで良いのかもしれません。

また、64bit 環境の場合は、とりあえず --libdir オプションで直接 /usr/lib64 を指定すれば良いのではないかと思います。

(multilib の知識が不足するので、不確かではありますが...)

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://namazu.asablo.jp/blog/2008/05/28/3547387/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。