make_ppm_bundle - make a bundle of ppm packages


   make_ppm_bundle [options] [Module | Distribution]


 [-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 ] : specify repositories to search for ppm packages

Additional Arguments:

   Module       : specify a module to fetch (requires
   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.


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 to look up the corresponding distribution and fetch and build it. Otherwise, additional arguments (eg, package.tar.gz, or 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

 host =
 user = me
 passwd = whatever
 [ MSWin32-x86-multi-thread-5.8 ]
 binary =
 ppd = /usr/local/httpd/htdocs/ppms/
 ar = /usr/local/httpd/htdocs/ppms/x86/
 zip = /usr/local/httpd/htdocs/ppms/zips
 zipdist = 1
 reps = <<END
 bundle = /usr/local/httpd/htdocs/ppms/bundles
 [ MSWin32-x86-multi-thread ]
 binary =
 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
 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 will be used, where dist_name is the name of the main distribution being built.


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.


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.


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.


This prints out a short help screen and exits.


This prints out some version information and exits.


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


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