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

NAME

Perl::Dist::Builder - Create win32 Perl installers

SYNOPSIS

Command line interface

  perldist vanilla.yml

Programmatic interface

  use Perl::Dist::Builder;
  my $pdb = Perl::Dist::Builder->new( 'vanilla.yml' );
  $pdb->remove_image;
  $pdb->build_all;

DESCRIPTION

Perl::Dist::Builder is alpha software.

Perl::Dist::Builder uses a configuration file to automatically generate a complete, standalone Perl distribution in a directory suitable for bundling into an executable installer.

Perl::Dist::Builder requires Perl and numerous modules. See Perl::Dist::Bootstrap for details on how to bootstrap a Perl environment suitable for building new Perl distributions.

CONFIGURATION FILE

To be documented after Perl::Dist::Builder is refactored. See the config files in Perl::Dist::Vanilla and Perl::Dist::Strawberry for current examples.

Some sections currently have no effect.

CREATING THE INSTALLER

Perl::Dist::Builder is not yet integrated with tools to create the executable. Installers for Vanilla Perl, etc. have been created with the free Inno Setup tool.

Inno Setup can be downloaded from jrsoftware.org: http://www.jrsoftware.org/isinfo.php

Inno Setup is configured with .iss files included in the distributions.

A future version of Perl::Dist::Builder may likely auto-generate the .iss file.

METHODS

new

 my $pdb = Perl::Dist::Builder->new( $yaml_config_file );

Create a new builder object, initialized from a YAML configuration file.

build_all

 $pdb->build_all;

Runs all build tasks in order:

  • install_binaries

  • install_perl

  • install_modules

  • install_extras

  • install_from_cpan

Does not delete the existing image directory.

install_binaries

 $pdb->install_binaries;

Downloads binary packages (e.g. compiler, dmake) from URLs provided in the config file. Unpacks them (or portions of them) into the image directory.

install_from_cpan

 $pdb->install_from_cpan;

Uses the copy of perl in the image directory to run CPAN and install modules defined in the config file.

install_extras

 $pdb->install_extras;

Copies local files into the image directory. E.g. documentation, menu shortcuts, CPAN starter config file, etc.

install_modules

 $pdb->install_modules;

Downloads tarballs for modules defined in the config file, unpacks them and installs them directly using "Makefile.PL" and "dmake". Does not invoke CPAN. (Used primarily to get necessary prerequisite modules to make CPAN work sanely and safely without binary helpers on Win32.)

install_perl

 $pdb->install_perl;

Downloads Perl source tarball, unpacks it, builds it, and installs it into the image directory.

remove_image

 $pdb->remove_image;

Removes the "image_dir" directory specified in the config file, if it exists, and prints a diagnostic message.

ROADMAP

Massive refactoring/rewrite is needed. This initial version is a crudely modulized form of individual perl scripts used in the early development process of Vanilla Perl.

Additional documentation will be created after refactoring.

BUGS

Please report any bugs or feature using the CPAN Request Tracker. Bugs can be submitted by email to bug-Perl-Dist@rt.cpan.org or through the web interface at http://rt.cpan.org/Public/Dist/Display.html?Name=Perl-Dist

AUTHOR

Adam Kennedy <adamk@cpan.org>

David A. Golden <dagolden@cpan.org>

COPYRIGHT

Copyright 2007 Adam Kennedy.

Copyright 2006 David A. Golden.

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

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO