The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

make_ppm_bundle - make a bundle of ppm packages

SYNOPSIS

make_ppm_bundle [options] [Module | Distribution]

Options:

[-z | --zip]              : make a zip distribution
[-f | --force]            : force remaking a distribution
[-i | --ignore]           : ignore any failing test results
[ --skip]                 : skip running the tests
[-b | --binary] location  : specify the binary location
[-n | --arch_sub]         : use \$Config{archname} as a subdirectory
[-s | --script] script    : specify a script in the <INSTALL> field
[-e | --exec] exec        : specify the executable to run the <INSTALL> script
[-x | --add] file         : add file to the archive
[-o | --os] os            : use os for the <OS> field
[-a | --arch] arch        : use arch for the <ARCHITECTURE> field
[-v | --version]          : print version information and exit
[-h | --help]             : print this help screen
[-r | --remove]           : remove the build directory after installation
[-p | --program]  b=a     : specify "a" to be used for the "b" program
[-A | --as]               : add Perl version number to ARCHITECTURE (>= 5.8)
[-V | --ppmv]             : add version string to ppd and archive filenames
[ --ppd ]  location       : copy the ppd to the specified location
[ --ar ]   location       : copy the archive file to the specified location
[ --zip ]   location      : copy the zipped file to the specified location
[ --host]  host           : use the specified host for copying the ppm files
[ --user]  user           : username to use when transferring ppm files
[ --passwd] password      : password associated with user
[ --cpan ]                : make a CPAN distribution
[ --no_case ]             : for module searches, ignore case
[ --no-case ]             : for module searches, ignore case
[ --no_cfg ]              : do not read a .ppmcfg configuration file
[ --no-cfg ]              : do not read a .ppmcfg configuration file
[ --vsr]                  : add version string to the archive filename
[ --vsp]                  : add version string to the ppd filename
[ --zipdist]              : create a zip file of the .ppd and .tar.gz files
[ --no-ppm4]              : don't add ppm4 extensions to the ppd file
[ --no-html]              : don't generate html documentation
[ --no-remote-lookup]     : don't use external data sources for meta information
[ --bundle_name ] name    : use the specified name as the bundle name
[ --no-upload]            : don't upload individual ppm packages
[ --clean ]               : remove the temporary build directory
[ --reps ] http://rep.com : specify repositories to search for ppm packages

Additional Arguments:

Module       : specify a module to fetch (requires CPAN.pm)
Distribution : specify a distribution to fetch

With no arguments, make_ppm_bundle will build a bundle inside the current directory, which assumes this is a CPAN distribution.

DESCRIPTION

make_ppm_bundle is an interface to the PPM::Make::Bundle module, bundled zip file of a package and all of it's required prerequisites. See PPM::Make::Bundle for further details.

Apart from the options described below, without any arguments make_ppm_bundle will assume it is inside an unpacked source distribution and make the corresponding distribution. If it is given an argument of what looks like a module name (eg, Net::FTP), it will use CPAN.pm to look up the corresponding distribution and fetch and build it. Otherwise, additional arguments (eg, package.tar.gz, or http://someplace.org/package.tar.gz) will be interpreted as distributions to fetch and build.

Options can be read from a configuration file .ppmcfg (see PPM::Make) and/or given as options to make_ppm_bundle, unless the no_cfg option is given. An example .ppmcfg file is

[default]

host = me.wherever.ca
user = me
passwd = whatever

[ MSWin32-x86-multi-thread-5.8 ]

binary = http://me.wherever.ca/ppms/x86/
ppd = /usr/local/httpd/htdocs/ppms/
ar = /usr/local/httpd/htdocs/ppms/x86/
zip = /usr/local/httpd/htdocs/ppms/zips
zipdist = 1
reps = <<END
http://theoryx5.uwinnipeg.ca/ppms/
http://www.bribes.org/perl/ppm/
http://ppm.activestate.com/PPMPackages/5.8-windows/
END
bundle = /usr/local/httpd/htdocs/ppms/bundles

[ MSWin32-x86-multi-thread ]

binary = http://me.wherever.ca/ppmpackages/x86/
ppd = /usr/local/httpd/htdocs/ppmpackages/
ar = /usr/local/httpd/htdocs/ppmpackages/x86/
zip = /usr/local/httpd/htdocs/ppmpackages/zips
zipdist = 1
no_ppm4 = 1
reps = <<END
http://ppm.activestate.com/PPMPackages/5.6/
http://theoryx5.uwinnipeg.ca/ppmpackages/
http://www.bribes.org/perl/ppm/
END
bundle = /usr/local/httpd/htdocs/ppmpackages/bundles

In case of duplicates, the options to make_ppm_bundle take precedence. Available options include those of PPM::Make, plus the following specific ones:

--bundle_name $bundle_name

This options specifes the name of the zip file containing all of the bundled ppm packages. If this is not specified, a default of Bundle-dist_name.zip will be used, where dist_name is the name of the main distribution being built.

--no-upload

By default, if a required package is built by PPM::Make, and if the configuration file specifies that such ppm packages are to be uploaded to a repository, this upload will take place. The no-upload option specifies that such individual package uploads not take place, although the bundled zip file will still be uploaded, if specified.

--reps http://some.host/path/to/ppms

This specifies a list of repositories to search for needed ppm packages. This option can be specified multiple times to specify a list of repsoitories.

--clean

The ppm packages are placed in a temporary directory for eventual inclusion in the zipped bundle file. The clean option specifies that this temporary directory be removed after the bundle file is built.

[--help]

This prints out a short help screen and exits.

[--version]

This prints out some version information and exits.

COPYRIGHT

This program is copyright, 2006, by Randy Kobes <r.kobes@uwinnipeg.ca>. It is distributed under the same terms as Perl itself.

SEE ALSO

PPM::Make::Bundle, PPM::Make, and PPM.