Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

RPM::Make::Simple
simple interface to RPM::Make

RPM::Make::Simple - simple interface to RPM::Make


NAME

RPM::Make::Simple - simple interface to RPM::Make


SYNOPSIS


  use RPM::Make::Simple;

  # define some important build data

  my $rpm = RPM::Make::Simple->new(name => 'RPM_Name', #mandatory

                                   arch => 'i386', # mandatory

                                   version => '0.01',

                                   release => '1',

                                   build_root => './build',

                                   temp_build_loc => 'temp_build_loc');

  # 'From_File' => 'To_File_or_Dir'

  $rpm->Files('./scripts/some_script.pl' => '/usr/bin/some_script',

              './docs/some_document' => '/usr/man/man3/some_document',

              './config/some_config' => '/etc/some_config',

              './config/keep_config' => '/etc/keep_config');

  # tell RPM::Make this is a document (optional)

  $rpm->Doc('/usr/man/man3/some_document');

  # this is a config file (optional)

  $rpm->Conf('/etc/some_config');

  # config file we don't want to replace if it's there (optional)

  $rpm->ConfNoReplace('/etc/keep_config');

  # Some pre-requisites

  $rpm->Requires('perl(RPM::Make)' => 0.9);

  # Some more metadata, summary, post installation etc.

  $rpm->MetaData('summary' => 'package for blah blah',

                 'description' => 'longer than the summary',

                 'post' => $post_install_script,

                 'AutoReqProv' => 'no',

                 'vendor' => 'Bob Co.',

                 'group' => 'Bob RPMS');

  # build the RPM! woo!

  $rpm->Build();

  # clean up the temporary files

  $rpm->Clean();


DESCRIPTION

Generates an RPM from a given list of files.

I wrote this as a 'dumb' RPM builder. An understanding of how an RPM is built (with spec files and whatnot) is desirable before using this. It's basically a wrapper for RPM::Make where the most important difference is how files are chosen and organised, using a simple 'from_file => to_file' syntax.

The Files and MetaData methods can be called more than once.

See RPM::Make for more info.


METHODS

new

RPM::Make::Simple constructor. Takes the following mandatory parameters (as a hash):

name
name of the RPM

arch
architecture of machine (e.g. i386)

Optional parameters (defaults in brackets):

version
version number of package (0.01)

release
release number of package (1)

build_root
directory the RPMs will be built in (./build)

temp_build_loc
directory where the files for the RPM will be copied whilst building (temp_build_loc)

Files

List of files that will be installed, using a hash you can set the current location of a file and it's installation destination. For example, if I want to install a file called 'bob.pl' from '/home/bob/scripts/bob.pl' to '/usr/local/bin/bob' (notice you can rename the file during this phase) I would do the following:

$rpm->Files('/home/bob/scripts/bob.pl' => '/usr/local/bin/bob')

Doc

List of documents (as an array), such as man pages etc. Files in this list must already have been passed to the 'Files' function and always use the 'to' location.

Conf

List of config files, again it's an array. Files in this list must already have been passed to the 'Files' function and always use the 'to' location.

ConfNoReplace

Array of config files that shouldn't be replaced. Files in this list must already have been passed to the 'Files' function and always use the 'to' location.

Requires

List of requirements as a hash, where the key is the required package and the value is the version. For example, if I want to have a requirement of the package 'tim' verion '6' I would do the following:

$rpm->Requires('tim' => '6');

MetaData

Metadata not covered by the other functions (although you can overwrite here if you know about RPM::Make). Example of a summary being added:

$rpm->MetaData('summary' => 'blah blah blah');

It requires the following hash keys as its parameters:


   Summary - A short summary of the RPM

   Description - A description of the RPM

   AutoReqProv - Automatic dependency processing, either "yes" or "no"

   Vendor - The RPM vendor

   Group - The name of the RPM group that this RPM is part of

The AutoReqProv is case sensitive, the other parameters aren't.

Build

Invokes the build, no arguments required. Returns true if it succeeeds.

Clean

Removes temporary build directories.

FilePerms

Disused. Method left in for legacy reasons.


SEE ALSO

RPM::Make, rpmbuild etc.


BUGS

RPM::Make 0.8 does not support certain RPM features such as post installation scripts. Althought most features will work fine, it is recommended that you use version 0.9.


AUTHOR

Stephen Hardisty, <moowahaha@hotmail.com>


COPYRIGHT AND LICENSE

Copyright (C) 2004 MessageLabs.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.0 or, at your option, any later version of Perl 5 you may have available.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy