[Momonga-devel.ja:00418] Re: kernel-2.4.18-116m での変更(コマンドラインから設定変更)


小松です。

From: Ken Deeter <ktdeeter@xxxxxxxxxxxxxxxxxxxx>
Subject: [Momonga-devel.ja:00375] Re: kernel-2.4.18-116m での変更(コマンドラインから設定変更)
Date: Sun, Aug 25, 2002 at 03:58:22AM JST

> specファイルには、他のファイルをincludeするマクロはないでしょうか。つま
> り、コマンドラインでしていするより、%defineの内容をkernel.specから別のフ
> ァイルに移して保存しておき、kernel.specが処理される時に、その別のファイ
> ルも同時に読み込まれ、内容がkernel.specに在るものをoverrideする仕組みに
> はできないでしょうか。

%include はあります。

> つまいたとえばkernel.specには
> 
> %define optionA 0
> %define optionB 1
> %define optionC 1
> 
> %include kernel.specopts # <-- こういうのがもし在ればのはなしですが
> 
> んでもってkernel.specoptsには
> 
> %define optionA 1
> %define optionC 0
> 
> など、カスタムな設定を入れておく。kernel.specにあって、specoptsにないも
> のは、kernel.specの方のデフォルトがしようされる形になればいいんじゃない
> でしょうか。

これ、結構いい案だと思います。
ついでだから、include すべきファイルの名前も、置き場所も
決め打ちしてしまって、rpm の macro を定義してやるとよさそう。

ということで、次のような定義を /usr/lib/rpm/macros などに
書いてやるのはどうでしょう?

%specopts_dir           /etc/rpm/specopts

%include_specopts \
%define specopts_file %specopts_dir/%name.specopts \
%{expand: %(if [ -f %specopts_file ]; then echo %%include %specopts_file; fi)}

例えば kernel.spec 中で %include_specopts と書けば、
もし /etc/rpm/specopts/kernel.specopts が存在するなら
それを読み込む、というようになります。

# 本当は %include_specopts なんて書かないでも
# 勝手に include されるように macro を書ければいいのですが、
# できるかどうか調べてません。

-- 
---------------------------------------
東京大学大学院総合文化研究科
広域科学専攻相関基礎科学系 
  佐々研究室  博士3年
    小松  晋一朗            
mailto:koma2@xxxxxxxxxxxxxxxxxxxx
       koma2@xxxxxxxxxxxxxxxxx
http://kamuy.c.u-tokyo.ac.jp/~koma2/
---------------------------------------