空の RPM パッケージで依存関係の問題を解決する (2)

昨日は「新設された -devel パッケージへの依存に困ったときは -devel を捏造すればいい」と力説したわけで、今日は、このために必要な空の RPM パッケージの作り方をメモしておこう。
作り方といっても大したことではなく、こんな感じの SPEC ファイルを書けばいい:

Name:           perl-devel
Summary:        This is a dummy package just for resolving dependency problems.
Version:        5.8.8
Release:        dummy.0
Group:          Development/Languages
License:        public domain
Packager:       masugata_k <masugata_k@example.com>
Source0:        %{name}-%{version}.tar.gz
Source1:        README
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%description
No files but README are installed by this package because all necessary
files are installed by "perl" package.

%prep
%setup

%build

%install

%clean
[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT}

%files
%defattr(-,root,root)
%doc $RPM_SOURCE_DIR/README

昨日は「popt-devel がなくて困るんだよ」的な話をしたが、今日は偶々 perl-devel がなくて困った((subversionrpmbuild --rebuild していた。))ので perl-devel を題材に取ることにした。
続いて、SPEC ファイル中で Source0, Source1 としている perl-devel-5.8.8.tar.gz*1 と README を用意する。perl-devel-5.8.8.tar.gz は、perl-devel-5.8.8 という空のディレクトリが入っているだけの TAR ボールだ。README の方には何でも好きなことを書けばよい。インストールされた暁には /usr/share/doc/perl-devel-5.8.8/README になるので、このニセモノパッケージを作るに至った経緯などを書いておくといいと思う。ちなみに、TAR ボールと README を分けたのは、README を簡単に編集できるようにするためだ。
たったこれだけ。あとは、rpmbuild -ba --clean SPEC/perl-devel.spec するだけで、perl-devel-5.8.8-dummy.0.i386.rpm がめでたく出来上がる。

CentOS 本来のパッケージに Provides を追加するのとどちらが簡単か?

昨日は Provides を書いて再ビルドする方がいい気がしていたが、やはり、空の -devel の方がいいと思う。perl の再ビルドなんてやりたくない。BuildRequires なのを入れまくるのも避けたいところだ。

*1:perl-5.8.8.tar.gz ではない点に注意。