The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Software::Packager::Aix - The Software::Packager extension for AIX 4.1 and above

SYNOPSIS

 use Software::Packager;
 my $packager = new Software::Packager('aix');

DESCRIPTION

This module is used to create software packages in a Backup-format file (bff) suitable for installation with installp.

This module creates packages for AIX 4.1 and higher only. Due to the compatability requirements of Software::Packager multiple components in the same package are not supported. This may be changed at some point in the future.

This module is in part a baised on the workings of the lppbuild scripts. Where possible I've worked from the standards, where I had no idea what they were talking about I refered to the lppbuild scripts for an understanding. As such I'd like to thank the writers of lppbuild version 2.1. I believe these scripts to be written by Jim Abbey. Who ever it was thanks for your work. It has proven envaluable. lppbuild is available from http://aixpdslib.seas.ucla.edu/

Please note that this module will eventually comply with the IBM documented standard which can be found at

http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/genprogc/pkging_sw4_install.htm

FUNCTIONS

add_item()

The method overrides the add_item method of Software::Packager to use Software::Packager::Object::Aix. For more details see the documentation in:

 Software::Packager
 Software::Packager::Object
 Software::Packager::Object::Aix

lpp_package_type()

This method sets or returns the lpp package type. The lpp package types are "I" for an install package "ML" for a maintenance level package "S" for a single update package

If the lpp package type is not set, the default of "I" for an install package is set (version minor and fix numbers are 0) and "S" for an update package (version minor and/or fix numbers are non 0)

component_name()

 $packager->component_name($value);
 $component_name = $packager->component_name();

This method sets or returns the component name for this package. The compoment name is a required value for AIX packages.

package()

 $packager->package();

This method overrides the base API in Software::Packager. it does all the nasty work of creating the package.

version()

This method is used to set the version and return it in the correct format required for AIX.

Any invalid entries in the version will be automatically corrected and a warning printed.

This is a excerpt from the standard.

The fileset level is referred to as the level or alternatively as the v.r.m.f or VRMF and has the form:

Version.Release.ModificationLevel.FixLevel[.FixID]

 Version                A numeric field of 1 to 2 digits that identifies the version number.  
 Release                A numeric field of 1 to 2 digits that identifies the release number.  
 ModificationLevel      A numeric field of 1 to 4 digits that identifies the modification level.  
 FixLevel               A numeric field of 1 to 4 digits that identifies the fix level.  
 FixID                  A character field of 1 to 9 characters identifying the fix identifier.
                        The FixID is used by Version 3.2-formatted fileset updates only.  

A base fileset installation level is the full initial installation level of a fileset. This level contains all files in the fileset, as opposed to a fileset update, which may contain a subset of files from the full fileset.

All filesets in a software package should have the same fileset level, though it is not required for AIX Version 4.1-formatted packages.

For all new levels of a fileset, the fileset level must increase. The installp command uses the fileset level to check for a later level of the product on subsequent installations.

Fileset level precedence reads from left to right (for example, 3.2.0.0 is a newer level than 2.3.0.0).

Fileset Level Rules and Conventions for AIX Version 4.1-Formatted Filesets The following conventions and rules have been put in place in order to simplify the software maintenance for product developers and customers:

A base fileset installation level should have a fix level of 0 (zero).

A base fileset installation level package must contain the functionality provided in other installation packages for that fileset with lower fileset levels. For example, the Plan.Day level 2.1 fileset must contain the functionality provided in the Plan.Day level 1.1 fileset.

A fileset update must have either a non-zero modification level or a non-zero fix level.

A fileset update must have the same version and release numbers as the base fileset installation level to which it is to be applied.

Unless otherwise specified in the software package, a fileset update with a non-zero fix level must be an update to the fileset with the same version number, release number, and modification level and a zero fix level. Providing information in the requisite section of the lpp_name file causes an exception to this rule.

Unless otherwise specified in the software package, a fileset update with a non-zero modification level and a zero fix level must be an update to the fileset with the same version number and release number and a zero modification level. Providing information in the requisite section of the lpp_name file causes an exception to this rule.

A fileset update must contain the functionality of the fileset's previous updates that apply to the same fileset level.

SEE ALSO

 Software::Packager

AUTHOR

R Bernard Davison <rbdavison@cpan.org>

HOMEPAGE

http://bernard.gondwana.com.au

COPYRIGHT

Copyright (c) 2001 Gondwanatech. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.