vim RPMビルド

前回、MySQL-communityのRPMビルドを紹介したが今回はvimRPMビルドについて手順をまとめる。
CentOS5標準付属のvimはバージョンが7.0と古いものなので今回はfedora13で提供されているvimからRPMビルドを作成しようと思う。

まず下記サイトよりfedora13のvim src.rpmを取得する。

http://rpm.pbone.net/

検索時に「fedora13」のチェックボックスを選択して「vim-common」とキーワード指定して検索する。
検索結果の対象アーキテクチャからsrc.rpmを辿って手元にsrc.rpmを取得する。

$ wget ftp://ftp.rhnet.is/pub/fedora/linux/releases/13/Fedora/source/SRPMS/vim-7.2.411-1.fc13.src.rpm

いつも通りrpmで展開しようとするとfedora用src.rpmのため「MD5 sum mismatch」とエラーになってしまう。当然なんですが。。。
なのでMD5チェックサムを無視して展開する。

$ rpm -ivh --nomd5 vim-7.2.411-1.fc13.src.rpm

すると SPECS, SOURCES に展開されているので rpmbuild してみる。

$ rpmbuild -ba SPECS/vim.spec

が、ビルドに必要なパッケージが入っていないので入れる。

$ sudo yum install python-devel libacl-devel gpm-devel ruby-devel ruby gtk2-devel libSM-devel libXt-devel libXpm-devel

ただこれだけでもダメで perl-devel の依存関係が残ってしまう。
しかし、この perl-devel というパッケージは fedora13 にだけある新しいパッケージのため CentOS5 の yumリポジトリには存在しない。
そこでこの perl-devel のビルド依存関係を下記のようにspecファイルから除外する。

@@ -492,7 +492,7 @@
 Patch3013: vim-7.2-elinks-parameter-518791.patch
 
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: python-devel ncurses-devel gettext perl-devel
+BuildRequires: python-devel ncurses-devel gettext
 BuildRequires: perl(ExtUtils::Embed)
 BuildRequires: libacl-devel gpm-devel autoconf
 %if %{WITH_SELINUX}

では実際にビルドしてみる。

$ rpmbuild -ba SPECS/vim.spec

うまくいけば下記のファイルが作られていると思う。

vim-common-7.2.411-1.i386.rpm
vim-minimal-7.2.411-1.i386.rpm
vim-enhanced-7.2.411-1.i386.rpm
vim-X11-7.2.411-1.i386.rpm

まとめ

今回はfedora13のsrc.rpmを使ってvim7.2のRPMビルドを行った。
相変わらずspecファイル抜きのパッケージビルドは避けている。。。
そのためvim7.3の最新のものは見て見ぬ振りを。。。
たいていのものはspecファイルがどこかにあってそれを拝借することでRPMビルドできているので今のところはなんとかできている。

会社の仕事の関係上、CentOSでの開発・運用は当分はなさそうなので、次回は何か別のエントリーを書こうと思う。