Alien-Base-ModuleBuild
view release on metacpan or search on metacpan
[version 0.024]
my $dir = $amb->alien_extract_archive($filename);
This function unpacks the given archive and returns the directory
containing the unpacked files.
The default implementation relies on Archive::Extract that is able to
handle most common formats. In order to handle other formats or
archives requiring some special treatment you may want to override this
method.
alien_do_system
[version 0.024]
my %result = $amb->alien_do_system($cmd)
Similar to Module::Build's do_system, also sets the path and several
environment variables in accordance to the object configuration (i.e.
alien_bin_requires) and performs the interpolation of the patterns
described in "COMMAND INTERPOLATION" in Alien::Base::ModuleBuild::API.
Returns a set of key value pairs including stdout, stderr, success and
command.
alien_do_commands
$amb->alien_do_commands($phase);
Executes the commands for the given phase.
alien_interpolate
my $string = $amb->alien_interpolate($string);
Takes the input string and interpolates the results.
alien_install_network
[version 1.16]
my $bool = $amb->alien_install_network;
Returns true if downloading source from the internet is allowed. This
is true unless ALIEN_INSTALL_NETWORK is defined and false.
alien_download_rule
[version 1.16]
my $rule = $amb->alien_download_rule;
This will return one of warn, digest, encrypt, digest_or_encrypt or
digest_and_encrypt. This is based on the ALIEN_DOWNLOAD_RULE
environment variable.
GUIDE TO DOCUMENTATION
The documentation for Module::Build is broken up into sections:
General Usage (Module::Build)
This is the landing document for Alien::Base::ModuleBuild's parent
class. It describes basic usage and background information. Its main
purpose is to assist the user who wants to learn how to invoke and
control Module::Build scripts at the command line.
It also lists the extra documentation for its use. Users and authors
of Alien:: modules should familiarize themselves with these
documents. Module::Build::API is of particular importance to authors.
Alien-Specific Usage (Alien::Base::ModuleBuild)
This is the document you are currently reading.
Authoring Reference (Alien::Base::Authoring)
This document describes the structure and organization of Alien::Base
based projects, beyond that contained in Module::Build::Authoring,
and the relevant concepts needed by authors who are writing Build.PL
scripts for a distribution or controlling Alien::Base::ModuleBuild
processes programmatically.
Note that as it contains information both for the build and use
phases of Alien::Base projects, it is located in the upper namespace.
API Reference (Alien::Base::ModuleBuild::API)
This is a reference to the Alien::Base::ModuleBuild API beyond that
contained in Module::Build::API.
Using the resulting Alien (Alien::Build::Manual::AlienUser)
Once you have an Alien you or your users can review this manual for
how to use it. Generally speaking you should have some useful usage
information in your Alien's POD, but some authors choose to direct
their users to this manual instead.
Using Alien::Build instead (Alien::Build::Manual)
As mentioned at the top, you are encouraged to use the Alien::Build
and alienfile system instead. This manual is a starting point for the
other Alien::Build documentation.
ENVIRONMENT
ALIEN_ARCH
Set to a true value to install to an arch-specific directory.
ALIEN_DOWNLOAD_RULE
This controls security options for fetching alienized packages over
the internet. The legal values are:
warn
Warn if the package is either unencrypted or lacks a digest. This
is currently the default, but will change in the near future.
digest
Fetch will not happen unless there is a digest for the alienized
package.
encrypt
Fetch will not happen unless via an encrypted protocol like https,
or if the package is bundled with the Alien.
digest_or_encrypt
Fetch will only happen if the alienized package has a cryptographic
signature digest, or if an encrypted protocol like https is used,
or if the package is bundled with the Alien. This will be the
default in the near future.
digest_and_encrypt
Fetch will only happen if the alienized package has a cryptographic
signature digest, and is fetched via a secure protocol (like
https). Bundled packages are also considered fetch via a secure
protocol, but will still require a digest.
ALIEN_FORCE
Skips checking for an installed version and forces reinstalling the
Alien target.
ALIEN_INSTALL_NETWORK
If true (the default if not defined), then network installs will be
allowed. Set to 0 or another false value to turn off network
installs.
ALIEN_INSTALL_TYPE
Set to share or system to override the install type. Set to default
or unset to restore the default.
ALIEN_VERBOSE
Enables verbose output from M::B::do_system.
ALIEN_${MODULENAME}_REPO_${PROTOCOL}_${KEY}
Overrides $KEY in the given module's repository configuration
matching $PROTOCOL. For example,
ALIEN_OPENSSL_REPO_FTP_HOST=ftp.example.com.
SEE ALSO
Alien::Build
alienfile
Alien::Build::Manual::AlienAuthor
Alien
THANKS
Thanks also to
Christian Walde (Mithaldu)
For productive conversations about component interoperability.
kmx
For writing Alien::Tidyp from which I drew many of my initial ideas.
David Mertens (run4flat)
For productive conversations about implementation.
Mark Nunberg (mordy, mnunberg)
For graciously teaching me about rpath and dynamic loading,
AUTHOR
( run in 0.524 second using v1.01-cache-2.11-cpan-39bf76dae61 )