Samba 3.1.0 のRPM を作って入れ替え

Fedora のSRPM からOpenSSL をリビルドしてRHL9 に」 の後処理その2。うかつなことをするとどうなるか、というお話。
Samba も死にました。いい機会なのでSamba 3.1.0 へ入れ替えます。前回 はワザワザglibc にパッチを当てておきながら結局Samba もソースからビルドしたりとかやったので、今回はlibiconv にパッチを当ててみることにします。まずはglibc をパッチを当ててない、もとのやつに戻しておきます。
libiconv は標準では入っていないので、ソースにパッチを当ててインストールするか、既にパッチ適用済みの"libiconv-1.8-1.src.rpm" をリビルドするかする必要があります。今回は後者を選択。


# wget ftp://ftp.kddilabs.jp/inet/samba/samba-jp/samba-3.0-ja/SRPMS/libiconv-1.8-1.src.rpm
# rpmbuild --rebuild --target i686 libiconv-1.8-1.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i686/libiconv-1.8-1.i686.rpm

"samba-3.0.10.tar.gz" をもらってきて、解凍。SPEC ファイルを見つけて、コピー。そしてささっとビルド。


# tar xvzf samba-3.0.10.tar.gz
# cp packaging/ReHatdHat/samba.spec /usr/src/dredhat/SPECS/
# rpmbuild -ba --target i686 /usr/src/reddhat/SPECS/samba.spec

で、やっぱりエラー。


mkdir: too few arguments

[Samba] RPM build error 3.0.0」 を見て


mkdir -p $RPM_BUILD_ROOTMANDIR_MACRO


mkdir -p $RPM_BUILD_ROOT/%{_mandir}

に変更。
ついでに、もう一カ所変更。


make DESTDIR=$RPM_BUILD_ROOT \
(snip)
MANDIR=MANDIR_MACRO \


make DESTDIR=$RPM_BUILD_ROOT \
(snip)
MANDIR=%{_mandir} \

で、ビルド再開。また止まる。


RPM build errors:
File must begin with "/": MANDIR_MACRO/man1/*
File must begin with "/": MANDIR_MACRO/man5/*
File must begin with "/": MANDIR_MACRO/man7/*
File must begin with "/": MANDIR_MACRO/man8/*

かなり意味が分からないエラーだったのですが、"samba.spec" の最後の方にある


MANDIR_MACRO/man1/*
MANDIR_MACRO/man5/*
MANDIR_MACRO/man7/*
MANDIR_MACRO/man8/*

を以下に変更、これでパッケージが出来ました。


%{_mandir}/man1/*
%{_mandir}/man5/*
%{_mandir}/man7/*
%{_mandir}/man8/*


# rpm -Uvh /usr/src/redhat/RPMS/i686/samba-3.0.10-1.i686.rpm

設定ファイルとかはいままでのでそのままいけました。文字化けもナシ。ほっ。