Hatena::ブログ(Diary)

Yet Another Hackadelic

2010-02-25

CPAN::Packager で version を変えずに release だけ increment したい場合

一応、インターフェースとしては存在してるんだけど、cpan-packager コマンド経由だとどうにもならない。

$ perl -d /usr/bin/cpan-packager --module OreOre::Module --builder RPM --conf /path/to/cpan-packager.yaml 
  DB<1> x use CPAN::Packager::Builder::RPM::Spec;
  DB<2> b CPAN::Packager::Builder::RPM::Spec::build
  DB<3> c
  DB<3> n
  DB<3> x $args
0  HASH(0xe1ff444)
   'installdirs' => 'vendor'
   'just-spec' => 1
   'noperlreqs' => 1
   'release' => '1.cpanpackager'
  DB<4> x $args->{release} = '2.cpanpackager';
0  '2.cpanpackager'
  DB<5> c

CPAN::Packager::Builder::RPM::Spec の build メソッドの $args->{release} を勝手に書き換えると出来るっぽぃ。とか書くと id:dann さんが何とかしてくれるんじゃまいか。

と思ったら米欄にて、id:dann さんより cpan-packager.yaml で対応出来るらしいとの事。知らなかったっす><

2010-01-13

q4m を rpm 化する with checkinstall

作業メモです。

src.rpm の取得

# cd /usr/src/redhat/SRPMS
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-community-5.1.42-0.rhel5.src.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/

rpmbuild --recompile

ビルド時のソースツリーが必要なので recompile

# rpmbuild --recompile --define 'community 1' /usr/src/redhat/SRPMS/MySQL-community-5.1.42-0.rhel5.src.rpm

checkinstall で rpm 化

make 時に MYSQL_LIBDIR をつけてるのは libmysqlclient.so のパスの解決の為。

# cd /usr/local/src
# wget http://q4m.31tools.com/dist/q4m-0.9.tar.gz
# tar xfz q4m-0.9.tar.gz
# cd q4m-0.9
# ./configure --prefix=/usr --with-mysql=/usr/src/redhat/BUILD/mysql-5.1.42 
# checkinstall -R --pkgname q4m --pkgversion 0.9 \
  --pkgrelease 0.glibc23 --pkggroup Applications/Databases \
  --maintainer zigorou@cpan.org \
  make MYSQL_LIBDIR=/usr/lib install

必要なら rpmbuild --rebuild もして置いた方が良いかも。