web-dev-qa-db-ja.com

RPMスペックファイルでOS条件付きビルド要件を指定するにはどうすればよいですか?

スペックファイルのBuildPrereqフラグを使用して回避しようとしています。 OSが特定のバージョンである場合、いくつかの前提条件を含める必要があります。何かのようなもの

if os == Fedora 4
 BuildPrereq >= apr0.9
endif

if os == feodra 10
 BuildPrereq >= apr2.0
endif 

上記を達成する方法はありますか?また、これに関するいくつかの代替案を聞きたいと思います。問題は、OSのいくつかのバージョンでコンパイルする必要のないコードのセクションがあることです。だから私は条件付きコンパイルと上記の混合を見ています。

乾杯!

6
Ricko M

書き込んだ内容をspecfileマクロに直接変換するには:

%if 0%{?fedora} == 4
BuildPrereq >= apr0.9
%endif 
%if 0%{?fedora} == 10
BuildPrereq >= apr2.0
%endif

最初の%endif%elseに変更することもできますが、他の状況が発生した場合に備えて、できるだけ同じように書き直したいと思いました。

Fc4とf10以降の間のバージョンのFedoraをサポートしたい場合は、> =と<=も使用できます。 RHELに関心がある場合は、RHEL4の場合は4、RHEL5の場合は5と評価される%{rhel}があります。

6
jsbillings