(続)vine-rpm-helper で perl-Net-Server の SPEC ファイルを生成してみた

vine-rpm-helper で perl-Net-Server の SPEC ファイルを生成してみた - いつも発展途上の続きです。

できた SPEC ファイルは次のとおりです。

%define pkgname Net-Server

# Basic Information
Name: perl-%{pkgname}
Version: 0.99
Release: 1%{?_dist_release}
# COPYING などを参照して License を修正してください。
License: Artistic or GPL
# /usr/share/doc/rpm-4.9.1.2/GROUPS_for_vine.txt を参照して Group を修正してください。
Group: FIXME
Source0: http://search.cpan.org/CPAN/authors/id/R/RH/RHANDOM/%{pkgname}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-root

Vendor: Project Vine
Distribution: Vine Linux
Packager: yasumichi

Summary: FIXME
Summary(ja): ここに日本語で概要を記述してください。

# Dependency
Requires: perl
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))

BuildRequires: perl

%description
FIXME

%description -l ja
ここに日本語で詳細を記述してください。

%prep
%setup -q -n Net-Server-0.99

%build
perl Makefile.PL
%{__make}

%install
%{__rm} -rf ${RPM_BUILD_ROOT}
%{__make} install DESTDIR=${RPM_BUILD_ROOT}

find $RPM_BUILD_ROOT%{_prefix} -type f -print |
sed "s@^$RPM_BUILD_ROOT@@g" |
grep -v ^%{_mandir} |
grep -v perllocal.pod |
grep -v "\.packlist" > %{name}.files

if [ "$(cat %{name}.files)X" = "X" ] ; then
echo "ERROR: EMPTY FILE LIST"
exit -1
fi

# remove unnecessary files.
%{__rm} ${RPM_BUILD_ROOT}%{perl_archlib}/perllocal.pod
%{__rm} ${RPM_BUILD_ROOT}%{perl_sitearch}/auto/Net/Server/.packlist


%clean
%{__rm} -rf ${RPM_BUILD_ROOT}


%files -f %{name}.files
%defattr(-,root,root)
%doc Changes README

%changelog
* Fri Jan 13 2012 Yasumichi Akahoshi 0.99-1

 この雛型を元に FIXME とか書かれているところや %files に梱包するファイルの一覧を記述したりするのですが、Perl モジュールについては、%files を修正する必要がないように細工されています。
 とりあえずのテストであれば、このままバイナリパッケージを作成し、インストールすることが可能です。

$ rpmbuild -bb perl-Net-Server-vl.spec
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.4DX9bc
+ umask 022
+ cd /home/yasumichi/rpm/BUILD
+ cd /home/yasumichi/rpm/BUILD
+ rm -rf Net-Server-0.99
+ /usr/bin/gzip -dc /home/yasumichi/rpm/SOURCES/perl-Net-Server/Net-Server-0.99.tar.gz
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd Net-Server-0.99
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
実行中(%build): /bin/sh -e /var/tmp/rpm-tmp.AR18wy
+ umask 022
+ cd /home/yasumichi/rpm/BUILD
+ cd Net-Server-0.99
+ perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Net::Server
+ /usr/bin/make
cp lib/Net/Server/Proto/UDP.pm blib/lib/Net/Server/Proto/UDP.pm
cp lib/Net/Server/Proto/UNIX.pm blib/lib/Net/Server/Proto/UNIX.pm
cp lib/Net/Server/PreFork.pm blib/lib/Net/Server/PreFork.pm
cp lib/Net/Server/Proto/SSL.pm blib/lib/Net/Server/Proto/SSL.pm
cp lib/Net/Server.pm blib/lib/Net/Server.pm
cp lib/Net/Server/Proto/TCP.pm blib/lib/Net/Server/Proto/TCP.pm
cp lib/Net/Server/SIG.pm blib/lib/Net/Server/SIG.pm
cp lib/Net/Server/Proto/SSLEAY.pm blib/lib/Net/Server/Proto/SSLEAY.pm
cp lib/Net/Server/MultiType.pm blib/lib/Net/Server/MultiType.pm
cp lib/Net/Server/Fork.pm blib/lib/Net/Server/Fork.pm
cp lib/Net/Server/INET.pm blib/lib/Net/Server/INET.pm
cp lib/Net/Server/Multiplex.pm blib/lib/Net/Server/Multiplex.pm
cp lib/Net/Server.pod blib/lib/Net/Server.pod
cp lib/Net/Server/Daemonize.pm blib/lib/Net/Server/Daemonize.pm
cp lib/Net/Server/PreForkSimple.pm blib/lib/Net/Server/PreForkSimple.pm
cp lib/Net/Server/Proto.pm blib/lib/Net/Server/Proto.pm
cp lib/Net/Server/Single.pm blib/lib/Net/Server/Single.pm
cp lib/Net/Server/HTTP.pm blib/lib/Net/Server/HTTP.pm
Manifying blib/man3/Net::Server::Proto::UNIX.3pm
Manifying blib/man3/Net::Server::Proto::UDP.3pm
Manifying blib/man3/Net::Server::PreFork.3pm
Manifying blib/man3/Net::Server::Proto::SSL.3pm
Manifying blib/man3/Net::Server::Proto::TCP.3pm
Manifying blib/man3/Net::Server::Proto::SSLEAY.3pm
Manifying blib/man3/Net::Server::MultiType.3pm
Manifying blib/man3/Net::Server::SIG.3pm
Manifying blib/man3/Net::Server::INET.3pm
Manifying blib/man3/Net::Server::Fork.3pm
Manifying blib/man3/Net::Server::Multiplex.3pm
Manifying blib/man3/Net::Server.3pm
Manifying blib/man3/Net::Server::Daemonize.3pm
Manifying blib/man3/Net::Server::PreForkSimple.3pm
Manifying blib/man3/Net::Server::Proto.3pm
Manifying blib/man3/Net::Server::Single.3pm
Manifying blib/man3/Net::Server::HTTP.3pm
+ exit 0
実行中(%install): /bin/sh -e /var/tmp/rpm-tmp.jMGfzX
+ umask 022
+ cd /home/yasumichi/rpm/BUILD
+ cd Net-Server-0.99
+ /bin/rm -rf /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64
+ /usr/bin/make install DESTDIR=/home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server.pod
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Fork.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/HTTP.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Single.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/MultiType.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/PreForkSimple.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/PreFork.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/SIG.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Daemonize.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/INET.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Multiplex.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/SSL.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/SSLEAY.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/UDP.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/UNIX.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/TCP.pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::MultiType.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::PreForkSimple.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Fork.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Multiplex.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Proto::TCP.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Proto::UDP.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::SIG.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::INET.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::PreFork.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Proto::SSLEAY.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Proto.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Proto::SSL.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Daemonize.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::HTTP.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Single.3pm
Installing /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/man/man3/Net::Server::Proto::UNIX.3pm
Appending installation info to /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/5.12.3/x86_64-linux-thread-multi/perllocal.pod
+ find /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr -type f -print
+ sed 's@^/home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64@@g'
+ grep -v perllocal.pod
+ grep -v '^/usr/share/man'
+ grep -v '\.packlist'
++ cat perl-Net-Server.files
+ '[' '/usr/lib64/perl5/site_perl/5.12.3/Net/Server.pod
/usr/lib64/perl5/site_perl/5.12.3/Net/Server.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Fork.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/HTTP.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Single.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/MultiType.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/PreForkSimple.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/PreFork.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/SIG.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Daemonize.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/SSL.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/SSLEAY.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/UDP.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/UNIX.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto/TCP.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Proto.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/INET.pm
/usr/lib64/perl5/site_perl/5.12.3/Net/Server/Multiplex.pmX' = X ']'
+ /bin/rm /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/5.12.3/x86_64-linux-thread-multi/perllocal.pod
+ /bin/rm /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/lib64/perl5/site_perl/5.12.3/x86_64-linux-thread-multi/auto/Net/Server/.packlist
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip /usr/bin/strip
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
ファイルの処理中: perl-Net-Server-0.99-1vl7.x86_64
実行中(%doc): /bin/sh -e /var/tmp/rpm-tmp.mDIbjn
+ umask 022
+ cd /home/yasumichi/rpm/BUILD
+ cd Net-Server-0.99
+ DOCDIR=/home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/doc/perl-Net-Server-0.99
+ export DOCDIR
+ /bin/mkdir -p /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/doc/perl-Net-Server-0.99
+ cp -pr Changes README /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64/usr/share/doc/perl-Net-Server-0.99
+ exit 0
Provides: perl(Net::Server) = 0.99 perl(Net::Server::Daemonize) = 0.05 perl(Net::Server::Fork) perl(Net::Server::HTTP) perl(Net::Server::INET) perl(Net::Server::INET::Handle) perl(Net::Server::MultiType) perl(Net::Server::Multiplex) perl(Net::Server::Multiplex::MUX) perl(Net::Server::PreFork) perl(Net::Server::PreForkSimple) perl(Net::Server::Proto) perl(Net::Server::Proto::SSL) perl(Net::Server::Proto::SSLEAY) perl(Net::Server::Proto::TCP) perl(Net::Server::Proto::UDP) perl(Net::Server::Proto::UNIX) perl(Net::Server::SIG) = 0.01 perl(Net::Server::Single) perl(Net::Server::TiedHandle)
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: perl(Carp) perl(Errno) perl(Exporter) perl(Fcntl) perl(FileHandle) perl(IO::Handle) perl(IO::Select) perl(IO::Socket) perl(IO::Socket::INET) perl(IO::Socket::UNIX) perl(Net::Server) perl(Net::Server::Daemonize) perl(Net::Server::MultiType) perl(Net::Server::PreForkSimple) perl(Net::Server::Proto) perl(Net::Server::Proto::TCP) perl(Net::Server::SIG) perl(POSIX) perl(Scalar::Util) perl(Socket) perl(Time::HiRes) perl(base) perl(strict) perl(vars) perl(warnings)
伸張ファイルの検査中: /usr/lib/rpm/check-files /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64
警告: インストール済み(ただし未伸張)ファイルが見つかりました:
/usr/share/man/man3/Net::Server.3pm.gz
/usr/share/man/man3/Net::Server::Daemonize.3pm.gz
/usr/share/man/man3/Net::Server::Fork.3pm.gz
/usr/share/man/man3/Net::Server::HTTP.3pm.gz
/usr/share/man/man3/Net::Server::INET.3pm.gz
/usr/share/man/man3/Net::Server::MultiType.3pm.gz
/usr/share/man/man3/Net::Server::Multiplex.3pm.gz
/usr/share/man/man3/Net::Server::PreFork.3pm.gz
/usr/share/man/man3/Net::Server::PreForkSimple.3pm.gz
/usr/share/man/man3/Net::Server::Proto.3pm.gz
/usr/share/man/man3/Net::Server::Proto::SSL.3pm.gz
/usr/share/man/man3/Net::Server::Proto::SSLEAY.3pm.gz
/usr/share/man/man3/Net::Server::Proto::TCP.3pm.gz
/usr/share/man/man3/Net::Server::Proto::UDP.3pm.gz
/usr/share/man/man3/Net::Server::Proto::UNIX.3pm.gz
/usr/share/man/man3/Net::Server::SIG.3pm.gz
/usr/share/man/man3/Net::Server::Single.3pm.gz
書き込み完了: /home/yasumichi/rpm/RPMS/x86_64/perl-Net-Server-0.99-1vl7.x86_64.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.Mo4Hff
+ umask 022
+ cd /home/yasumichi/rpm/BUILD
+ cd Net-Server-0.99
+ /bin/rm -rf /home/yasumichi/rpm/BUILDROOT/perl-Net-Server-0.99-1vl7.x86_64
+ exit 0

man pages がパッケージに含まれていない旨が出ていますが、perldoc でマニュアルが確認できるためか、Vine LinuxPerl モジュールでは、man pages を含めないのがポリシーのようです。

試しに書き込み完了したバイナリパッケージをインストールしてみます。

$ sudo rpm -ivh /home/yasumichi/rpm/RPMS/x86_64/perl-Net-Server-0.99-1vl7.x86_64.rpm
[sudo] password for yasumichi:
準備しています... ########################################### [100%]
1:perl-Net-Server ########################################### [100%]

インストールができたら、perldoc で使い方を参照してみましょう。

$ perldoc Net::Server