view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
t/1a-generate.t view on Meta::CPAN
#32 - fieldsets
{
opt => {
name => 'account',
fieldsets => [[acct=>'Account Information'],
[prefs=>'User Preferences'],
[phone=>'Phone Number(s)']],
stylesheet => 1,
fields => [qw/first_name last_name outside_1 email home_phone new_set
work_phone call_me email_me outside_2 sex outside_3/],
},
t/1a-generate.t view on Meta::CPAN
last_name => { fieldset => 'acct' },
email => { fieldset => 'acct' },
home_phone => { fieldset => 'phone' },
work_phone => { fieldset => 'phone' },
new_set => { fieldset => 'Inline Created' },
call_me => { fieldset => 'prefs' },
email_me => { fieldset => 'prefs' },
first_name => { fieldset => 'acct' },
sex => { fieldset => 'acct',
options => [qw/Yes No/] },
},
},
t/1a-generate.t view on Meta::CPAN
{
opt => {
name => 'parts',
fields => [qw/ticket user email part_number/],
fieldsets => [[acct=>'Account Information'],
[prefs=>'Part Information']],
method => 'post',
keepextras => 1,
validate => { ticket => '/^\d+$/' },
submit => [qw/Update Delete Cancel/],
lalign => 'left',
template => {type => 'div'},
stylesheet => 1,
},
mod => {
ticket => { fieldset => 'acct' },
email => { fieldset => 'prefs' },
},
},
# Older tests moved from 1b-fields
#34 - misc checkboxes
view all matches for this distribution
view release on metacpan or search on metacpan
t/integration.t view on Meta::CPAN
is($info->param('sort'), 'date', 'sort param still intact');
};
subtest 'cookie: repeated lookups return same value (stateful jar)' => sub {
reset_env();
$ENV{HTTP_COOKIE} = 'user=nigel; prefs=verbose';
my $info = CGI::Info->new();
my $first = $info->cookie('user');
my $second = $info->cookie('user');
is($first, $second, 'repeated cookie() calls return same value');
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CGI/Kwiki.pm view on Meta::CPAN
formatter
template
plugin
search
changes
prefs
pages
slides
javascript
style
scripts
lib/CGI/Kwiki.pm view on Meta::CPAN
attribute 'template';
attribute 'formatter';
attribute 'database';
attribute 'metadata';
attribute 'backup';
attribute 'prefs';
attribute 'i18n';
# Constructor inherited by most classes
sub new {
my ($class, $driver) = @_;
lib/CGI/Kwiki.pm view on Meta::CPAN
$self->template($driver->template);
$self->formatter($driver->formatter);
$self->database($driver->database);
$self->metadata($driver->metadata);
$self->backup($driver->backup);
$self->prefs($driver->prefs);
return $self;
}
sub load_driver {
require CGI::Kwiki::Config;
lib/CGI/Kwiki.pm view on Meta::CPAN
edit_class: CGI::Kwiki::Edit
formatter_class: CGI::Kwiki::Formatter
template_class: CGI::Kwiki::Template
search_class: CGI::Kwiki::Search
changes_class: CGI::Kwiki::Changes
prefs_class: CGI::Kwiki::Prefs
pages_class: CGI::Kwiki::Pages
slides_class: CGI::Kwiki::Slides
javascript_class: CGI::Kwiki::Javascript
style_class: CGI::Kwiki::Style
scripts_class: CGI::Kwiki::Scripts
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CGI/OptimalQuery/InteractiveFilter.pm view on Meta::CPAN
form.filterForm .hide { display: none; }
/* -------------------- prefs -------------------- */
form.filterForm .submit_off,.add_off { display: none; }
form.filterForm .c_col { text-align: center; }
form.filterForm input.submit_ok { background-color: lightgreen; }
form.filterForm input.submit_off { background-color: yellow; }
form.filterForm .paren_warn { text-align: center; background-color: yellow; }
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
demos/animals/DemoAardvark.pm view on Meta::CPAN
if( my $rh_screen = $rh_screens->{$users_choice} ) {
my $inner = $globals->make_new_context();
$inner->inc_user_path_level();
$inner->navigate_url_path( $users_choice );
$inner->navigate_file_path( $rh_screen->{mod_subdir} );
$inner->set_prefs( $rh_screen->{mod_prefs} );
$inner->call_component( $rh_screen->{mod_name} );
$globals->take_context_output( $inner );
} else {
$globals->set_page_body( "<P>Please choose a screen to view.</P>" );
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CGI/Simple.pm view on Meta::CPAN
return $self->{'.path_info'};
}
sub accept {
my ( $self, $search ) = @_;
my %prefs;
for my $accept ( split ',', $ENV{'HTTP_ACCEPT'} ) {
( my $pref ) = $accept =~ m|q=([\d\.]+)|;
( my $type ) = $accept =~ m|(\S+/[^;]+)|;
next unless $type;
$prefs{$type} = $pref || 1;
}
return keys %prefs unless $search;
return $prefs{$search} if $prefs{$search};
# Didn't get it, so try pattern matching.
for my $pref ( keys %prefs ) {
next unless $pref =~ m/\*/; # not a pattern match
( my $pat = $pref ) =~ s/([^\w*])/\\$1/g; # escape meta characters
$pat =~ s/\*/.*/g; # turn it into a pattern
return $prefs{$pref} if $search =~ /$pat/;
}
}
sub Accept { my $self = shift; $self->accept( @_ ) }
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CGI/Wiki/Kwiki.pm view on Meta::CPAN
template_path => './templates',
stylesheet_url => "",
home_node => 'HomePage',
cgi_path => CGI::url(),
search_map => './search_map',
prefs_expire => '+1M', # passed to CGI::Cookie; see its docs
charset => 'iso-8859-1', # characterset for the wiki
);
The C<db_type> parameter refers to a CGI::Wiki::Store::[type] class.
Valid values are 'MySQL', SQLite', etc: see the L<CGI::Wiki> man page
lib/CGI/Wiki/Kwiki.pm view on Meta::CPAN
template_path => './templates',
stylesheet_url => "",
home_node => 'HomePage',
cgi_path => CGI::url(),
search_map => "./search_map",
prefs_expire => '+1M',
charset => 'iso-8859-1',
};
our $diff_plugin = CGI::Wiki::Plugin::Diff->new;
lib/CGI/Wiki/Kwiki.pm view on Meta::CPAN
my %node_data = $self->{wiki}->retrieve_node( %criteria );
my ( $content, $checksum ) = @node_data{qw( content checksum )};
my @formatter_labels = sort keys %{ $self->{formatters} };
my %prefs_data = $self->get_prefs_from_cookie;
my $username = $prefs_data{username};
my %tt_vars = (
content => CGI::escapeHTML($content),
checksum => CGI::escapeHTML($checksum),
version => $version,
lib/CGI/Wiki/Kwiki.pm view on Meta::CPAN
}
sub show_preferences_form {
my $self = shift;
# Get defaults for form fields from cookie.
my %prefs = $self->get_prefs_from_cookie;
$self->process_template(
template => "preferences.tt",
vars => {
%prefs,
show_prefs_form => 1,
not_editable => 1,
},
);
}
sub get_prefs_from_cookie {
my $self = shift;
my %cookies = CGI::Cookie->fetch;
my $cookie_name = $self->prefs_cookie_name;
my %data;
if ( $cookies{$cookie_name} ) {
%data = $cookies{$cookie_name}->value; # call ->value in list context
}
return ( username => $data{username} || "",
);
}
sub set_preferences {
my ($self, %args) = @_;
my $cookie = $self->make_prefs_cookie( %args );
$self->process_template(
template => "preferences.tt",
vars => {
not_editable => 1,
},
cookies => $cookie,
);
}
sub make_prefs_cookie {
my ($self, %args) = @_;
my $cookie_name = $self->prefs_cookie_name;
my $cookie = CGI::Cookie->new(
-name => $cookie_name,
-value => {
username => $args{username},
},
-expires => $self->prefs_expire,
);
return $cookie;
}
sub prefs_expire {
my $self = shift;
return $self->{prefs_expire};
}
sub prefs_cookie_name {
my $self = shift;
my $name = $self->{site_name} . "_userprefs";
$name =~ s/\W//g;
}
1;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
Account.idl view on Meta::CPAN
case pt_color: Color favorite_color;
case pt_lotnum: numbers lottery_numbers;
case pt_nickname: string nickname;
};
attribute Preferences prefs;
attribute Face appearance;
void set_pref ( in Preference p );
Preference get_pref ( in PrefType t );
view all matches for this distribution
view release on metacpan or search on metacpan
Account.idl view on Meta::CPAN
case pt_color: Color favorite_color;
case pt_lotnum: numbers lottery_numbers;
case pt_nickname: string nickname;
};
attribute Preferences prefs;
attribute Face appearance;
void set_pref ( in Preference p );
Preference get_pref ( in PrefType t );
view all matches for this distribution
view release on metacpan or search on metacpan
Account.idl view on Meta::CPAN
case pt_color: Color favorite_color;
case pt_lotnum: numbers lottery_numbers;
case pt_nickname: string nickname;
};
attribute Preferences prefs;
attribute Face appearance;
void set_pref ( in Preference p );
Preference get_pref ( in PrefType t );
view all matches for this distribution
view release on metacpan or search on metacpan
data/tiddlers.json view on Meta::CPAN
"title": "CaptchaStuff",
"modified": "20260430021612817"
},
{
"created": "20240717002307158",
"text": "\"\"\"\no Author:\n- Ron Savage\n- Melbourne, Victoria, Australia\n- https://metacpan.org/author/RSAVAGE\n- http://savage.net.au - For links to various wikis\n\no V 1.45:\n- Unreleased\n- Add AEAD, ART, BART, BGP, CBC, CitizenLab, CL...
"title": "ChangeLog",
"modified": "20260501233202864"
},
{
"created": "20210729071550324",
data/tiddlers.json view on Meta::CPAN
"title": "ConstantStuff",
"modified": "20260429031531257"
},
{
"created": "20200206233503146",
"text": "\"\"\"\no See also:\n- CpanFile\n- ParsingStuff\n- PerlDocumentation\n- PerlInternals\n- UsernamePassword\n- https://docs.docker.com/get-started/get-docker/ - For Docker\n- https://docs.docker.com/compose/install - For Docker Compose...
"title": "CPAN",
"modified": "20260430002143699"
},
{
"text": "\"\"\"\no See also:\n- [[CPAN]]\n- LicenceStuff\n- SecurityPolicy\n\no CPAN::Audit:\n- Audit CPAN distributions for known vulnerabilities\n- https://metacpan.org/dist/CPAN-Audit\n- This module contains cpan-audit, which uses a cpanfi...
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e "$ENV{HOME}/.svk") {
view all matches for this distribution
view release on metacpan or search on metacpan
t/mini/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Features/README view on Meta::CPAN
The test script that works with this file is t/31sessions.t in the
CPAN.pm distribution.
The test tries to determine if CPAN.pm could deal with the
optional_features in a distroprefs file correctly.
view all matches for this distribution
view release on metacpan or search on metacpan
corpus/mini/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Features/README view on Meta::CPAN
The test script that works with this file is t/31sessions.t in the
CPAN.pm distribution.
The test tries to determine if CPAN.pm could deal with the
optional_features in a distroprefs file correctly.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CPAN/Plugin/Sysdeps.pm view on Meta::CPAN
CPAN.pm supports the plugin system since 2.07. If the CPAN.pm is
older, then still the C<cpan-sysdeps> script can be used.
It is assumed that some system dependencies are still installed: a
C<make>, a suitable C compiler, maybe C<sudo>, C<patch> (e.g. if there
are distroprefs using patch files) and of course C<perl>. On linux
systems, the file F</etc/os-release> is required, otherwise fallbacks
using C<lsb-release> and F</etc/redhat-release> and F</etc/issue> are
trued.. On Mac OS X systems C<homebrew> has to be installed.
=item * Batch mode
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CPAN/Reporter/Smoker/OpenBSD.pm view on Meta::CPAN
}
}
=head2 block_distro
Blocks a distribution to be tested under the smoker by using a distroprefs file.
Expects as parameters:
=over
lib/CPAN/Reporter/Smoker/OpenBSD.pm view on Meta::CPAN
The perl interpreter (which is in execution) configuration.
=item 3.
An comment to include in the distroprefs file.
=back
It returns a hash reference containing keys/values that could be directly
serialized to YAML (or other format) but the C<full_path> key, that contains
a suggest complete path to the distroprefs file (based on the L<CPAN> C<prefs_dir> configuration
client.
If there is an already file created as defined in C<full_path> key, it will C<warn> and return C<undef>.
=cut
lib/CPAN/Reporter/Smoker/OpenBSD.pm view on Meta::CPAN
},
disabled => 1
);
CPAN::HandleConfig->load;
my $prefs_dir = $CPAN::Config->{prefs_dir};
die "$prefs_dir does not exist or it is not readable\n"
unless ( -d $prefs_dir );
my $full_path = File::Spec->catfile( $prefs_dir, $filename );
if ( -f $full_path ) {
warn "$full_path already exists, will not overwrite it.";
return;
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CPAN/Reporter/Smoker/Safer.pm view on Meta::CPAN
=item exclusions
Defaults to C<[ qr#/perl-5\.#, qr#/mod_perl-\d# ]>. This is used by the default filter to exclude
any distro whose name (e.g. A/AU/AUTHOR/Foo-Bar-1.23.tar.gz) matches one of these regexes.
Note that the F<disabled.yml> functionality might be more suitable. See L<CPAN::Reporter::Smoker>, L<CPAN>, and L<CPAN::Distroprefs> for more details.
=item preview
Default false. If true, instead of invoking C<CPAN::Reporter::Smoker::start()> will just return the args (as hashref) that would have been passsed to C<start()>. This is usefull for debugging/testing without kicking off the actual smoke tester.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CPAN/Reporter/Smoker.pm view on Meta::CPAN
elsif ( $args{filter} and $args{filter}->($dist) ) {
$CPAN::Frontend->mywarn(
"Smoker: dist skipped $base [$count]\n");
next DIST;
}
elsif ( CPAN::Distribution->new(%{$dist})->prefs->{disabled} ) {
$CPAN::Frontend->mywarn(
"Smoker: dist disabled $base [$count]\n");
next DIST;
}
else {
lib/CPAN/Reporter/Smoker.pm view on Meta::CPAN
Continues until interrupted with CTRL-C
=item *
Checks CPAN.pm "distroprefs" to see if distributions should be skipped
(before handing off to CPAN)
=back
Current limitations:
lib/CPAN/Reporter/Smoker.pm view on Meta::CPAN
for how to tell CPAN.pm not to test certain dependencies.
=head2 Skipping additional distributions
If certain distributions hang, crash or otherwise cause trouble, you can use
CPAN's "distroprefs" system to disable them. If a distribution is disabled, it
won't be built or tested. If a distribution's dependency is disabled, a
failing test is just discarded.
The first step is configuring a directory for distroprefs files:
$ cpan
cpan> o conf init prefs_dir
cpan> o conf commit
Next, ensure that either the L<YAML> or L<YAML::Syck> module is installed.
(YAML::Syck is faster). Then create a file in the C<<< prefs_dir >>> directory
to hold the list of distributions to disable, e.g. call it C<<< disabled.yml >>>
In that file, you can add blocks of YAML code to disable distributions. The
match criteria "distribution" is a regex that matches against the canonical
name of a distribution, e.g. C<<< AUTHOR/Foo-Bar-3.14.tar.gz >>>.
lib/CPAN/Reporter/Smoker.pm view on Meta::CPAN
Please note that disabling distributions like this will also disable them
for normal, non-smoke usage of CPAN.pm.
One distribution that I would recommend either installing up front or else
disabling with distroprefs is mod_perl, as it is a common requirement for many
Apache:: modules but does not (easily) build and test under automation.
---
comment: "Don't build mod_perl if required by some other module"
match:
distribution: "/mod_perl-\d"
disabled: 1
Distroprefs are more powerful than this -- they can be used to automate
responses to prompts in distributions, set environment variables, specify
additional dependencies and so on. Read the docs for CPAN.pm for more and
look in the "distroprefs" directory in the CPAN distribution tarball for
examples.
=head2 Using a local CPAN::Mini mirror
Because distributions must be retrieved from a CPAN mirror, the smoker may
view all matches for this distribution
view release on metacpan or search on metacpan
adding Makefile/Build.PL and make/Build support into CPAN.pm
* Deprecated test() function; test() separated into record_command()
and grade_test() functions to support CPAN.pm sending
reports from output generated indpendently from CPAN::Reporter,
e.g. CPAN.pm using Expect with distroprefs
* Added record_command() to wrap and tee a system() command and
return results for further evaluation in grade_*() functions;
wrapping used to capture exit values that would otherwise be lost
from pipe to tee; will support CPAN inactivity timouts on both *nix
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CPAN/Smoker/Utils.pm view on Meta::CPAN
}
}
=head2 block_distro
Blocks a distribution to be tested under the smoker by using a distroprefs file.
Expects as parameters:
=over
lib/CPAN/Smoker/Utils.pm view on Meta::CPAN
The perl interpreter (which is in execution) configuration.
=item 3.
An comment to include in the distroprefs file.
=back
It returns a hash reference containing keys/values that could be directly
serialized to YAML (or other format) but the C<full_path> key, that contains
a suggest complete path to the distroprefs file (based on the L<CPAN>
C<prefs_dir> configuration client.
If there is an already file created as defined in C<full_path> key, it will
C<warn> and return C<undef>.
=cut
lib/CPAN/Smoker/Utils.pm view on Meta::CPAN
},
disabled => 1
);
CPAN::HandleConfig->load;
my $prefs_dir = $CPAN::Config->{prefs_dir};
die "$prefs_dir does not exist or it is not readable\n"
unless ( -d $prefs_dir );
my $full_path = File::Spec->catfile( $prefs_dir, $filename );
if ( -f $full_path ) {
warn "$full_path already exists, will not overwrite it.";
return;
}
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Repository.pm view on Meta::CPAN
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CPAN/Tarball/Patch.pm view on Meta::CPAN
use Cwd;
use File::Find;
=head1 NAME
CPAN::Tarball::Patch - Patch a CPAN tarball, via CPAN::Distroprefs mechanism
=head1 VERSION
Version 0.020000
lib/CPAN/Tarball/Patch.pm view on Meta::CPAN
our $VERSION = '0.020000';
=head1 SYNOPSIS
Patching a tarball using C<CPAN::Distroprefs>
use CPAN::Tarball::Patch;
my $patcher = CPAN::Tarball::Patch->new("$ENV{"HOME"}/.local/share/.cpan/prefs/", "$ENV{"HOME"}/.local/share/.cpan/patches/");
$patcher->patch("CONTRA/Acme-LSD-0.04.tar.gz");
# The argument format is NOT flexible since it would be used for matching by CPAN::Distroprefs
# In other words, it should be: AUTHOR/tarball.tar.gz
As of today, this module internal functioning and API is not fixed, do not use it yet (or at your risks).
=cut
sub new {
my $class = shift;
my $prefs_dir = shift;
my $patches_dir = shift;
defined $prefs_dir or die "Need to pass prefs_dir parameter";
defined $patches_dir or die "Need to pass patches_dir parameter";
my $self = bless {}, $class;
$self->{prefs_dir} = $prefs_dir;
$self->{patches_dir} = $patches_dir;
$self->{start_dir} = getcwd;
return $self;
}
lib/CPAN/Tarball/Patch.pm view on Meta::CPAN
my $self = shift;
my $distribution = shift;
defined $distribution or die "Need to pass distribution parameter";
my $prefs_folder = $self->{prefs_dir};
my $patches_folder = $self->{patches_dir};
use CPAN::Distroprefs;
use YAML;
my %arg = (
distribution => $distribution,
);
my %ext = ( yml => 'YAML' );
my $finder = CPAN::Distroprefs->find($prefs_folder, \%ext);
my @patches = ();
while (my $result = $finder->next) {
die $result->as_string if $result->is_fatal;
warn($result->as_string), next if $result->is_warning;
for my $pref (@{ $result->prefs }) {
if ($pref->matches(\%arg)) {
foreach my $patch ($pref->data->{patches}->@*) {
push @patches, $patch;
}
}
view all matches for this distribution
view release on metacpan or search on metacpan
The test script that works with this file is t/31sessions.t in the
CPAN.pm distribution.
The test tries to determine if CPAN.pm could deal with the
optional_features in a distroprefs file correctly.
view all matches for this distribution
view release on metacpan or search on metacpan
t/var/nntp-testers/18981290 view on Meta::CPAN
<a href="http://blog.cpantesters.org">Blog</a> •
<a href="http://www.cpantesters.org">Reports</a> •
<a href="http://wiki.cpantesters.org">Wiki</a> •
<a href="http://stats.cpantesters.org">Statistics</a> •
<a href="http://pass.cpantesters.org">PASS Matrix</a> •
<a href="http://prefs.cpantesters.org">Preferences</a> •
<a href="http://metabase.cpantesters.org">Metabase</a> •
<a href="http://devel.cpantesters.org">Development</a> •
<a href="http://deps.cpantesters.org">Dependencies</a> •
<a href="http://matrix.cpantesters.org">Matrix</a> •
<a href="http://analysis.cpantesters.org">Analysis</a></p>
view all matches for this distribution
view release on metacpan or search on metacpan
vhost/cgi-bin/templates/public/badmail.html
vhost/cgi-bin/templates/public/badpage.html
vhost/cgi-bin/templates/public/baduser.html
vhost/cgi-bin/templates/public/banuser.html
vhost/cgi-bin/templates/public/blank.html
vhost/cgi-bin/templates/public/box-prefs.html
vhost/cgi-bin/templates/public/box-sites.html
vhost/cgi-bin/templates/public/error_message.html
vhost/cgi-bin/templates/public/footer.html
vhost/cgi-bin/templates/public/layout.html
vhost/cgi-bin/templates/public/layout.json
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CPAN.pm view on Meta::CPAN
});
$CPAN::Frontend->mysleep(2);
}
} elsif ($mod eq "Module::Signature") {
# NOT prefs_lookup, we are not a distro
my $check_sigs = $CPAN::Config->{check_sigs};
if (not $check_sigs) {
# they do not want us:-(
} elsif (not $Have_warned->{"Module::Signature"}++) {
# No point in complaining unless the user can
lib/CPAN.pm view on Meta::CPAN
what to do if you are missing module prerequisites
('follow' automatically, 'ask' me, or 'ignore')
For 'follow', also sets PERL_AUTOINSTALL and
PERL_EXTUTILS_AUTOINSTALL for "--defaultdeps" if
not already set
prefs_dir local directory to store per-distro build options
proxy_user username for accessing an authenticating proxy
proxy_pass password for accessing an authenticating proxy
pushy_https use https to cpan.org when possible, otherwise use http
to cpan.org and issue a warning
randomize_urllist add some randomness to the sequence of the urllist
lib/CPAN.pm view on Meta::CPAN
with already installed modules, actually their version numbers, as
determined by ExtUtils::MakeMaker or equivalent. If a to-be-installed
module would downgrade an already installed module, the current build
is aborted.
An interesting twist occurs when a distroprefs document demands the
installation of an outdated dist via goto while
C<allow_installing_outdated_dists> forbids it. Without additional
provisions, this would let the C<allow_installing_outdated_dists>
win and the distroprefs lose. So the proper arrangement in such a case
is to write a second distroprefs document for the distro that C<goto>
points to and overrule the C<cpanconfig> there. E.g.:
---
match:
distribution: "^MAUKE/Keyword-Simple-0.04.tar.gz"
lib/CPAN.pm view on Meta::CPAN
match:
distribution: "^MAUKE/Keyword-Simple-0.03.tar.gz"
cpanconfig:
allow_installing_outdated_dists: yes
=head2 Configuration for individual distributions (I<Distroprefs>)
(B<Note:> This feature has been introduced in CPAN.pm 1.8854)
Distributions on CPAN usually behave according to what we call the
CPAN mantra. Or since the advent of Module::Build we should talk about
lib/CPAN.pm view on Meta::CPAN
But some modules cannot be built with this mantra. They try to get
some extra data from the user via the environment, extra arguments, or
interactively--thus disturbing the installation of large bundles like
Phalanx100 or modules with many dependencies like Plagger.
The distroprefs system of C<CPAN.pm> addresses this problem by
allowing the user to specify extra informations and recipes in YAML
files to either
=over
lib/CPAN.pm view on Meta::CPAN
disable the installation of an object altogether
=back
See the YAML and Data::Dumper files that come with the C<CPAN.pm>
distribution in the C<distroprefs/> directory for examples.
=head2 Filenames
The YAML files themselves must have the C<.yml> extension; all other
files are ignored (for two exceptions see I<Fallback Data::Dumper and
Storable> below). The containing directory can be specified in
C<CPAN.pm> in the C<prefs_dir> config variable. Try C<o conf init
prefs_dir> in the CPAN shell to set and activate the distroprefs
system.
Every YAML file may contain arbitrary documents according to the YAML
specification, and every document is treated as an entity that
can specify the treatment of a single distribution.
lib/CPAN.pm view on Meta::CPAN
=head2 Fallback Data::Dumper and Storable
If neither your configured C<yaml_module> nor YAML.pm is installed,
CPAN.pm falls back to using Data::Dumper and Storable and looks for
files with the extensions C<.dd> or C<.st> in the C<prefs_dir>
directory. These files are expected to contain one or more hashrefs.
For Data::Dumper generated files, this is expected to be done with by
defining C<$VAR1>, C<$VAR2>, etc. The YAML shell would produce these
with the command
lib/CPAN.pm view on Meta::CPAN
order via an external patch program. If the value for the C<-p>
parameter is C<0> or C<1> is determined by reading the patch
beforehand. The path to each patch is either an absolute path on the
local filesystem or relative to a patch directory specified in the
C<patches_dir> configuration variable or in the format of a canonical
distro name. For examples please consult the distroprefs/ directory in
the CPAN.pm distribution (these examples are not installed by
default).
Note: if the C<applypatch> program is installed and C<CPAN::Config>
knows about it B<and> a patch is written by the C<makepatch> program,
lib/CPAN.pm view on Meta::CPAN
=back
=head2 Schema verification with C<Kwalify>
If you have the C<Kwalify> module installed (which is part of the
Bundle::CPANxxl), then all your distroprefs files are checked for
syntactic correctness.
=head2 Example Distroprefs Files
C<CPAN.pm> comes with a collection of example YAML files. Note that these
are really just examples and should not be used without care because
they cannot fit everybody's purpose. After all, the authors of the
packages that ask questions had a need to ask, so you should watch
lib/CPAN.pm view on Meta::CPAN
command I<lynx> specified in C<< $CPAN::Config->{lynx} >>. If I<lynx>
isn't available, it converts it to plain text with the external
command I<html2text> and runs it through the pager specified
in C<< $CPAN::Config->{pager} >>.
=item CPAN::Distribution::prefs()
Returns the hash reference from the first matching YAML file that the
user has deposited in the C<prefs_dir/> directory. The first
succeeding match wins. The files in the C<prefs_dir/> are processed
alphabetically, and the canonical distro name (e.g.
AUTHOR/Foo-Bar-3.14.tar.gz) is matched against the regular expressions
stored in the $root->{match}{distribution} attribute value.
Additionally all module names contained in a distribution are matched
against the regular expressions in the $root->{match}{module} attribute
view all matches for this distribution