sourCEntral - mobile manpages

pdf

BOOTSTRAP-PERL

NAME

bootstrap−perl − Bootstrap Perl inclusive CPAN from git

SYNOPSIS

Install a threaded 64bit Perl using current "blead" from git with CPAN config into a path like "/$HOME/.bootstrapperl/$HOSTNAME/perl−5.15−thread−64bit−v5.15.5−258−ge7d0a3f":

  $ bootstrap−perl [ <OPTIONS> ]

Specify git revisions
latest "blead"

  $ bootstrap−perl −−version blead  # same as default

tag

  # note the different tag forms before and after Perl 5.10
  $ bootstrap−perl −−version perl−5.8.7
  $ bootstrap−perl −−version v5.14.1

branch name

  $ bootstrap−perl −−version remotes/origin/smoke−me/cpan
  $ bootstrap−perl −−version remotes/origin/zefram/pad_api
  $ bootstrap−perl −−version remotes/origin/maint−5.12
  $ bootstrap−perl −−version remotes/origin/maint−5.12^
  $ bootstrap−perl −−version remotes/origin/maint−5.12~3

by commit id

  $ bootstrap−perl −−version c14f2f9db08de3f50fe2ff7438429153d6ceb9a5
  $ bootstrap−perl −−version c14f2f9db08de3f50fe2ff7438429153d6ceb9a5^

current HEAD in local git repo

A leading "." is replaced with HEAD ’s commitid in current subdir; you can still combine that like usual git revisions:

  $ bootstrap−perl −−version .
  $ bootstrap−perl −−version .^
  $ bootstrap−perl −−version .~5

Installation options
specify giturl

  $ bootstrap−perl −−giturl git://github.com/mirrors/perl.git
  $ bootstrap−perl −g git://github.com/mirrors/perl.git # same
  $ bootstrap−perl −g .                                 # local dir

The giturl is always cloned from the specified giturl to a temporary working directory, so your local subdir stays untouched.

install directory

Install into other install directory than the unified naming schema (see below for more on this schema):

  $ bootstrap−perl −−prefix <PREFIX>

Use the unified naming schema but not under "/$HOME/.bootstrapperl/$HOSTNAME":

  $ bootstrap−perl −−prefixbase /foo/bar

install build dependencies

Provide the distro for which to install known build dependencies, like gcc, git, make, etc.:

 $ bootstrap−perl −−installdeps=debian

Currently there is only one: "debian". Simply send me a patch for your preferred distro, it’s easy.

parallel build

Use this many parallel jobs to build:

  $ bootstrap−perl −−jobs <n>
  $ bootstrap−perl −j <n>

Default is to use core count + 1.

test

Run the perl test suite:

  $ bootstrap−perl −−test
  $ bootstrap−perl −t

Default is not to run the tests.

(re−)build Perl

You can specify whether you want to compile perl even when an executable "perl" already exists:

  $ bootstrap−perl −−forcebuildperl
  $ bootstrap−perl −−noforcebuildperl

Default is off.

bootstrap CPAN

You can specify whether to bootstrap a full CPAN environment with distroprefs and dependencies:

  $ bootstrap−perl −−cpan
  $ bootstrap−perl −−nocpan

Default is on.

(re−)configure CPAN

You can specify whether to (re−)write a CPAN config ("CPAN/Config.pm", "CPAN/MyConfig.pm") even when it already exists:

  $ bootstrap−perl −−forcecpancfg
  $ bootstrap−perl −−noforcecpancfg

Default is on.

use threads

Build a threaded Perl ("−Dusethreads"):

  $ bootstrap−perl −−usethreads

which is already the default. To build non-threaded Perl use:

  $ bootstrap−perl −−nousethreads

use 64bit

Build a 64bit enabled Perl ("−Duse64bitall"):

  $ bootstrap−perl −−use64bit

which is already the default. To build Perl without 64bit use:

  $ bootstrap−perl −−nouse64bit

version numbers vs. blead

By default the Perl version number is derived from git-describe and kept for later reference (e.g., for codespeed exe name). However, if you specify

  $ bootstrap−perl −−blead

then the version used in paths or codespeed executables is using "blead" in order to generate a make it belong to to a common development line besides the yearly segmented graphs.

It is only possible to use "−−blead" with development versions in order to create consistent results from only the blead branch.

Note that "−−blead" does not set a version but only modifies the formats of path prefix and how the version is reported to Perl::Formance; it is not the same as "−−version blead".

configure CPAN and modules

Configure CPAN to use these mirrors:

  $ bootstrap−perl −−mirror file:///home/ss5/MINICPAN/
  $ bootstrap−perl −m file:///home/ss5/MINICPAN/ −m ftp://ftp.rub.de/pub/CPAN/
  $ bootstrap−perl −m file:///home/ss5/MINICPAN/,ftp://ftp.rub.de/pub/CPAN/

(Option can be repeated and allow comma separated lists.)

Install these modules from CPAN:

  $ bootstrap−perl −−module YAML::Syck
  $ bootstrap−perl −−module YAML::Syck −−forcemoduleinstall
  $ bootstrap−perl −M YAML::Syck −M Digest::SHA1 −M IO::Tty −M LWP
  $ bootstrap−perl −M YAML::Syck,Digest::SHA1 −M IO::Tty,LWP

(Option can be repeated and allow comma separated lists.)

run scripts

Run these scripts relative to built < PREFIX >/bin/:

  $ bootstrap−perl −−run tapper−testsuite−benchmark−perlformance
  $ bootstrap−perl −−run tapper−testsuite−benchmark−perlformance −−runargs="−−plugins=Fib,FibOO;−vvv"
  $ bootstrap−perl −r tapper−testsuite−benchmark−perlformance −r primes.pl

(Option "−−run" can be repeated and allows comma separated lists.)

(Option "−−runargs" can be repeated and allows semicolon[sic] separated lists.)

run Perl::Formance benchmarks

To do everything in one go needed for running Benchmark::Perl::Formance do:

  $ bootstrap−perl −−perlformance

This sets defaults equivalent to "−M Task::PerlFormance" "−m http://perlformance.net/PINTO/perlformance/" "−−run benchmark−perlformance" "−−runargs=−−plugins=ALL".

You can override parts of that like this:

  $ bootstrap−perl −−perlformance −−runargs="−−plugins=Fib,FibOO"

to specify different set ob benchmarks.

To use current subdir as Perl’s repo and run only those benchmarks with no extra dependencies

  $ bootstrap−perl −−perlformance−local
  $ bootstrap−perl −−perlformance−local −c .
  $ bootstrap−perl −−perlformance−local −c .^
  $ bootstrap−perl −−perlformance−local −c .~5

Unified installation prefix schema
It uses a unified naming schema for it’s installation PREFIX:

  /$HOME/.bootstrapperl/$HOSTNAME/perl−5.<VERSION>−<(no)?thread>−<(no)?64bit>−<git−describe>

which leads to paths like this:

  /home/ss5/.bootstrapperl/zomtec/perl−5.10−thread−64bit−v5.10.0
  /home/ss5/.bootstrapperl/zomtec/perl−5.15−thread−64bit−v5.15.5−258−ge7d0a3f

This naming schema consist of the major version, basic configuration and git-describe.

ABOUT

The script bootstrap-perl bootstraps Perl installations with complete CPAN environment, inclusive distroprefs, from git.

It was originally developed to be used by Benchmark::Perl::Formance and now lives on its own.

It should work for Perl versions from 5.8.6 to blead. Occasionally it cherry-picks a very few patches to fix some known build issues, like for 5.8.x.

AUTHOR

Steffen Schwigon <ss5 AT renormalist DOT net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Steffen Schwigon.

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

ABOUT

AUTO-GENERATED -- see <https://metacpan.org/pod/bootstrap−perl>

This is CPAN .pm’s systemwide configuration file. This file provides defaults for users, and the values can be changed in a per-user configuration file. The user-config file is being looked for as ~/.cpan/CPAN/MyConfig.pm.

pdf