大きなソースをmakeしてrpmパッケージを作るときなど、 幾つかのrpmパッケージに分割したくなることがよくあります。 たとえば、muleのrpmパッケージをつくるときに、 baseのrpmパッケージがelcを含んでいれば、 そのソースであるelファイルはなくてもmuleの実行には問題ないですから、 mule.rpm と mule-el.rpm みたいにわけたほうがよいかもしれません。 また、ライブラリや開発用インクルードファイルもソースに含まれるアプリケーションをrpm化する時は、 アプリ本体の hoge.rpm と、開発者用にlibhoge.a や hoge.hを入れたhoge-devel.rpmにわけたいこともあるでしょう。 ドキュメントが大きいと、hoge-docs.rpmも別に作りたいこともあるでしょう。
こういうときには、ちょっとspecファイルを変更するだけで、 サブパッケージの作成をすることができます。 具体的には、 サブパッケージ(ここでは、hogeのサブパッケージhoge-docsとする)のための、 データ定義部(%package docsではじまり、GroupやSummary、%description docsなどを書く部分)と、 そのサブパッケージにいれるファイルを列挙した%files docs から始まるファイルリストを付け加えます。 具体例は、RPM-BUILD-HOWTOにもありますので、興味のある人はそちらを参照してください。
ただし、次節でものべるように、 サブパッケージの作成は必要最小限にとどめるよう心掛けましょう。