[Momonga-devel.ja:01706] Re: specファイル中の%defineマクロについて
- From: Masahiro Takahata <takahata@xxxxxxxxx>
- Date: Wed, 21 May 2003 20:44:16 +0900(JST)
たかはたです。
このメールは
Kenta MURATA <muraken2@xxxxxxxxx>
さんのメールに対する返信です。
> むらけんです.
>
> In message <20030521195907.e6cd.takahata@xxxxxxxxx> at Wed, 21 May 2003 19:59:07 +0900(JST),
> Masahiro Takahata <takahata@xxxxxxxxx> wrote:
> > 最近になってまっさらの状態からビルドを始めようとすると、
> > specファイルの定義エラーがwarningとして表示されます。
>
> この現象は最近になって出たのではなく,前から起きていた事を付け
> 加えておきます.当時は,gnustep-make が無い状態で GNUstep.sh
> を使おうとして spec ファイルのスキャン時にエラーが出るだけで,
> 実際のビルドには影響がなかったので,修正が後回しになっていまし
> た.
>
> > mozilla-lang-pack.specをよく見ると、
> > Version: %(rpm -q --qf '%%{version}' mozilla)
> > と書かれていて、mozillaがインストールされていることが前提にspecが
> > 書かれていました
>
> これは,%() の使い方を間違っている例ですね.タグの値は静的にす
> べきです.従って,タグで使用するマクロも静的であるべきでしょう.
> ここでタグとは
>
> Name:
> Version:
> Requires:
>
> のようなモノの事を言います.
>
> しかし,スクリプトの内容はタグとは異なり,動的に決定しなければ
> ならない値も存在します.
>
> > これと同じようなものが、jadetex.specの中にも
> > %define TeXdir %(cd `kpsewhich -expand-var '$TEXMFMAIN'`/../..; pwd)
> > と定義されていて、このkpsewhichが無いためにwarning。
> > そもそもここで定義しているTeXdirは/usrなので全く意味無し。
>
> これは,そもそも TEXMFMAIN の値の意味を理解していないためにこ
> うなったのでしょう.しかし,jadetex は tetex が存在しなければ
> ビルドできないモノであり,tetex がインストールされていれば
> kpsewhich を使えるわけですから,%{TeXdir} がタグに使用されてい
> ないのであれば,非難すべき状況ではないと思います.
>
> > とはいえ、これらは動的にdefineなりをしていたために起きていて
> > 放置されていた現象なので、
> > ・原則%defineなどでは何かのコマンドの出力を使って、動的に定義をするのを止める。
> > ・アーキテクチャで振り分けられるなら%ifarchなどを駆使する。
> > ・packages.develに入っているものだけに依存する場合は、これに限らない。
> > という縛りを入れたいと思いますが、いかがでしょうか。
>
> 動的な値のマクロ定義は,そもそも悪い事ではありません.なので,
動的な値のマクロ定義について、悪いとも悪くないとも言ってないです。
ただ、現状OmoiKondaraが対応してないのであれば、使わない方がいいと言うことです。
> spec ファイルに縛りを入れるくらいなら,OmoiKondara を修正する
> のが良いと思います.
>
> ということで,提案された縛りには反対です.
確かに、OmoiKondaraを修正するのがよいと思います。
なので、直ればこの縛りは外したいと思っています。
直らない限り、動的な値のマクロ定義は控えた方がいいと思います。
---
Masahiro Takahata
takahata@xxxxxxxxx