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

NAME

buildaperl - Build an arbitrary perl version from APC

SYNOPSIS

 buildaperl 5.7.0@7100
 buildaperl 5.8.0@
 buildaperl @
 buildaperl --h

DESCRIPTION

This script builds the sources for any perl version between 5.004 and bleadperl.

The --h option displays all available options.

The argument consists of PERL_VERSION@PATCHNUMBER. The @ is mandatory, both PERL_VERSION and PATCHNUMER are optional.

If PERL_VERSION is missing, the script picks the most recent version in the branch. If the PATCHNUMBER is missing, all available patches for a given base will be applied. There is one important restriction: the script can not iterate over more than one APC directory when patching. This means you cannot build 5.6.0@18000. If you want @18000, just specify @18000 as the argument. If the --branch argument and the version@patch argument do not fit together, buildaperl dies.

The most convenient setup to run this script is to start it in a directory that contains a single subdirectory: APC. APC should be a full or partial mirror (***partial mirror is untested***) of Archive of Perl Changes . APC is located at

  rsync://ftp.linux.activestate.com/all-of-the-APC-for-mirrors-only/

Make sure you are at least mirroring additional_tarballs, the 5.*, and the c</perl-*-diffs> directories.

Beware that you will need about a gigabyte of storage if you want to rsync all of the archive.

Buildaperl uses a temporary directory to build a perl and then renames this directory to

   perl-X-PERL_VERSION@PATCHNUMBER (e.g. perl-p-5.7.2@15915)
        \ \            \
         \ \            `-> e.g. 15915
          \ `-> e.g. 5.7.2
           `-> either "p" for trunk or "m" for a maintenance branch

and lets it lying around (unless the --remo switch is used). This is considered a feature: if buildaperl tries to build a perl that has already been built, it will recognize the fact from seeing the associated directory name. It builds a perl only if this directory does not yet exist, otherwise it will die.

Other files and directories will also be created by default, namely the directory to install all created perls into (unless the --noinstall option is given), installed-perls .

PREREQUISITES

Same prerequisites as mentioned in patchaperlup.

AUTHOR

Andreas Koenig <andk@cpan.org>