NAME
RPM::Packager - Manifest-based approach for building RPMs
VERSION
Version 0.3.4
SYNOPSIS
Building RPMs should be easy.
This is a manifest approach to easily create custom RPMs. Once this module is installed, building RPMs should be as simple as writing a YAML file that looks like the following:
---
name: testpackage
version: grep Changelog # version string or some command to retrieve it
os: el6 # optional, don't specify anything if package is os-independent
dependencies:
- perl-YAML > 0.5
- perl-JSON
files:
bin: /usr/local/bin # directory-based mapping. RPM will install CWD/bin/* to /usr/local/bin.
user: apache # specify the owner of files. default: root
group: apache # specify the group owner of files. default: root
sign: # optionally, gpg signing of RPM
gpg_name: ED16CAB # provide the GPG key ID
passphrase_cmd: cat secret_file # command to retrieve the secret
after_install: path/to/script # shellscript to run after the package is installed (%post)
architecture: noarch # specify the architecture for this package (default: x86_64)
Then run:
rpm_packager.pl <path_to_manifest.yml>
Note : You need to have fpm available in PATH. For GPG signing, you need to have proper keys imported.
Note2: The 'release' field of RPM will be determined by the BUILD_NUMBER env variable plus 'os' field, like '150.el7'. If BUILD_NUMBER is unavailable, 1 will be used. If os is unspecified, nothing will be appended.
You may also interact with the library directly as long as you pass in the manifest information in a hash:
use RPM::Packager;
my %args = (
name => 'testpackage',
version => 'grep Changelog',
files => { bin => '/usr/local/bin' },
dependencies => [
'perl-YAML > 0.5',
'perl-JSON'
],
os => 'el6',
user => 'apache',
group => 'apache',
sign => {
'gpg_name' => 'ED16CAB',
'passphrase_cmd' => 'cat secret_file'
},
after_install => 'foo/bar/baz.sh',
architecture => 'noarch'
);
my $obj = RPM::Packager->new(%args);
$obj->create_rpm(); # RPM produced in CWD
SUBROUTINES/METHODS
new(%args)
Constructor. Pass in a hash containing manifest info.
create_rpm
Creates RPM based on the information in the object
AUTHOR
Satoshi Yagi, <satoshi.yagi at yahoo.com>
BUGS
Please report any bugs or feature requests to bug-rpm-packager at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=RPM-Packager. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc RPM::Packager
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
LICENSE AND COPYRIGHT
Copyright 2016 Satoshi Yagi.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.