App-CPANtoRPM
view release on metacpan or search on metacpan
lib/App/CPANtoRPM.pm view on Meta::CPAN
# m_license => perl_5,apache Comma separated list of licenses
#
# # Derived from the metadata
# # -------------------------
# build_type => make|build
# name => Foo-Bar
# version => 1.0
# author => [ AUTHOR, AUTHOR, ...]
# desc => DESCRIPTION
# summary => SUMMARY
# arch => noarch|%{_arch}
# arch_val => noarch|x86_64
# prefix => perl-
# rpmname => perl-Foo-Bar
# specname => perl-Foo-Bar.spec
#
# # Categorize package files
# # -------------------------
# files => { pm => { FILE => '' },
# pod => { FILE => '' }, or FILE => NAME
# t => { FILE => '' },
# xs => { FILE => '' },
# scripts => { FILE => '' },
# build => { FILE => '' },
# mainpod => [ FILE, NAME, SUMMARY, DESCRIPTION ]
# }
# FILE is the path relative to the top
# directory of the package.
# instfiles => { pm => { FILE => '' },
# scripts => { FILE => '' },
# man1 => { FILE => '' },
# man3 => { FILE => '' },
# }
# Similar to files but limited to the
# files that are actually installed.
# lib_inst => 1 if we're installing noarch .pm files
# arch_inst => 1 if we're installing architecture .pm files
# bin_inst => 1 if we're installing scripts
# man1_inst => 1
# man3_inst => 1
#
# # Prereqs and provides
# # -------------------------
# requires => { build => { FEATURE => VERS },
# test => { FEATURE => VERS },
# runtime => { FEATURE => VERS }, }
# Requirements for building the
# module, running tests, or runtime.
# FEATURE is Foo::Bar
# build_req => { FEATURE => VERS }
# runtime_req=> { FEATURE => VERS }
# Same as 'requires', but FEATURE
# formatted as it will be in the SPEC file.
# FEATURE is perl(Foo::Bar)
# provides => { FEATURE => VERS }
#
# # Gotten from the build step
# # -------------------------
# bin_dir => /usr/bin The directories we're installing too
# lib_dir => /usr/lib/perl5/5.14.2
# arch_dir => /usr/lib/perl5/5.14.2/x86_64-linux-thread-multi
# man1_dir => /usr/share/man/man1
# man3_dir => /usr/share/man/man3
# config_cmd => perl Makefile.PL The commands used for each step
# build_cmd => make
# test_cmd => make test
# install_cmd=> make install
# build_tiny => 0/1 1 if it uses Module::Build::Tiny
#
# # From the SPEC creation step
# # -------------------------
# release => 1
# disttag => %{?dist}
# epoch => The epoch number (set by --epoch)
# group => Development/Libraries
# url => http://search.cpan.org/dist/Foo-Bar/
# license => GPL+ or Artistic
# source => http://www.cpan.org/authors/id/S/SB/SBECK/Foo-Bar-1.0.tar.gz
# packager => PACKAGER
# restore => 1 if .rpmmacros file should be restored
# remove => 1 if .rpmmacros file should be removed
# topdir => /usr/src/redhat Top of the RPM build tree
# rpmarch => x86_64 The RPM architecture
# post_build => [ LINE, LINE, ... ] Lines (sh commands) added to %build
#
# # From the build RPM step
# # -------------------------
# rpmfile => /usr/src/redhat/RPMS/noarch/cpantorpm-1.00-1.noarch.rpm
# srpmfile => /usr/src/redhat/SRPMS/cpantorpm-1.00-1.src.rpm
sub _main {
my($self) = @_;
$self->_parse_args();
$self->_init();
$self->_get_package($$self{'package'});
chdir($package{'DIR'});
$self->_get_meta_pre_build();
$self->_check_deps() unless ($$self{'no_deps'});
$self->_build();
$self->_get_meta();
$self->_make_spec();
exit if ($$self{'spec_only'});
$self->_build_rpm();
$self->_sign_rpm() if ($$self{'sign'});
$self->_install_rpm() if ($$self{'install'});
$self->_install_yum() if ($$self{'yum'});
}
sub _usage {
my($self) = @_;
print
"usage: $COM OPTIONS PACKAGE
General options:
-h/--help : Print help.
-v/--version : Print out the version of this program
-D/--debug : Verbose output
( run in 1.145 second using v1.01-cache-2.11-cpan-c966e8aa7e8 )