view release on metacpan or search on metacpan
lib/Alien/Build/Git.pm view on Meta::CPAN
This module is documentation only for how to use C<git> as a download source
from L<alienfile> + L<Alien::Build>. Depending on the project source that you
are using and the way your L<alienfile> is structured, you will want to use
one of three modules that come with the distribution C<Alien-Build-Git>.
See the synopsis above and the modules in the SEE ALSO section below. To decide
which you need.
Also please carefully consider NOT using one of these modules. If you can,
using http or ftp to download your target project will probably require fewer
and less error-prone dependencies.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Alien/Build/Plugin/Build/Premake5.pm view on Meta::CPAN
has cc => sub { undef };
has dc => sub { undef };
has dotnet => sub { undef };
has fatal => sub { undef };
has file => sub { undef };
has insecure => sub { undef };
has scripts => sub { undef };
has systemscript => sub { undef };
has verbose => sub { undef };
has action => 'gmake';
lib/Alien/Build/Plugin/Build/Premake5.pm view on Meta::CPAN
next unless defined $val;
next if $key eq 'os' and $val eq $self->os_string;
push @cmd, "--$key=$val" if $val;
}
foreach my $key (qw( fatal insecure verbose )) {
push @cmd, "--$key" if defined $self->$key;
}
return join ' ', @cmd;
},
lib/Alien/Build/Plugin/Build/Premake5.pm view on Meta::CPAN
=item B<fatal>
Treat warnings from project scripts as errors.
=item B<insecure>
Forfeit SSH certification checks.
=item B<verbose>
view all matches for this distribution
view release on metacpan or search on metacpan
# Alien::Build::Plugin::Cleanse::BuildDir [](http://travis-ci.org/shawnlaffan/Alien-Build-Plugin-Cleanse-BuildDir)
Alien::Build plugin to cleanse the build dir
# SYNOPSIS
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Alien/Build/Plugin/Download/GitHub.pm view on Meta::CPAN
);
}
}
my %gh_fetch_options;
my $secret;
foreach my $name (qw( ALIEN_BUILD_GITHUB_TOKEN GITHUB_TOKEN GITHUB_PAT ))
{
if(defined $ENV{$name})
{
$secret = $ENV{$name};
push @{ $gh_fetch_options{http_headers} }, Authorization => "token $secret";
Alien::Build->log("using the GitHub Personal Access Token in $name") if $once;
$once = 0;
last;
}
}
lib/Alien/Build/Plugin/Download/GitHub.pm view on Meta::CPAN
# Temporarily patch the log method so that we don't log the PAT
my $log = \&Alien::Build::log;
no warnings 'redefine';
local *Alien::Build::log = sub {
if(defined $secret)
{
$_[1] =~ s/\Q$secret\E/ '#' x length($secret) /eg;
}
goto &$log;
};
use warnings;
lib/Alien/Build/Plugin/Download/GitHub.pm view on Meta::CPAN
=item ALIEN_BUILD_GITHUB_TOKEN GITHUB_TOKEN GITHUB_PAT
If one of these environment variables are set, then the GitHub API Personal
Access Token (PAT) will be used when connecting to the GitHub API.
For security reasons, the PAT will be removed from the log. Some Fetch plugins
(for example the C<curl> plugin) will log HTTP requests headers so this will
make sure that your PAT is not displayed in the log.
=item ALIEN_BUILD_PLUGIN_DOWNLOAD_GITHUB_DEBUG
lib/Alien/Build/Plugin/Download/GitHub.pm view on Meta::CPAN
used in production where you only need to use the API once for each L<Alien>, but
it can become a problem when testing an L<Alien> that uses this plugin in CI or via
cpantesters. In this situation you can set the C<ALIEN_BUILD_GITHUB_TOKEN> environment
variable (or commonly used but unofficial C<GITHUB_TOKEN> or C<GITHUB_PAT>), and this
plugin will use that in making API requests. If you are using GitHub Actions for CI,
then you can use the C<secrets.GITHUB_TOKEN> macro to get a PAT.
If you do this it is recommended that you make some precautions where possible:
=over 4
lib/Alien/Build/Plugin/Download/GitHub.pm view on Meta::CPAN
The PAT is only needed (if it is needed at all) during the build stage
of a share install. If you are doing this in GitHub Actions you can
just set the environment variable for that stage:
perl Makefile.PL
env ALIEN_BUILD_GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} make
make test
Or if you are using L<Dist::Zilla>
dzil listdeps --missing | cpanm -n
env ALIEN_BUILD_GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} dzil test
=back
=head1 AUTHOR
view all matches for this distribution
view release on metacpan or search on metacpan
t/alien_build_plugin_fetch_cache.t view on Meta::CPAN
is($main::count, 1, 'not cached' );
};
subtest 'second index' => sub {
$main::count = 0;
my $res = $fetch->('https://foo.test/');
is(
t/alien_build_plugin_fetch_cache.t view on Meta::CPAN
is($main::count, 0, 'cached' );
};
subtest 'second index inferred URL' => sub {
$main::count = 0;
local $build->meta_prop->{start_url} = 'https://foo.test/';
my $res = $fetch->();
t/alien_build_plugin_fetch_cache.t view on Meta::CPAN
1,
'not cached'
);
};
subtest 'second file1' => sub {
$main::count = 0;
my $res = $fetch->('https://foo.test/file1.txt');
is(
t/alien_build_plugin_fetch_cache.t view on Meta::CPAN
1,
'not cached'
);
};
subtest 'second file1' => sub {
$main::count = 0;
my $res = $fetch->('https://foo.test/file2.txt');
is(
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Alien/Build/Plugin/Fetch/Prompt.pm view on Meta::CPAN
This plugin depends on the L<alienfile> using the appropriate channels for downloading external
libraries. It is perfectly legal to write a L<alienfile> that downloads using an external
program like C<wget> or C<curl>, or not go through the normal fetch plugin. There is also
nothing stopping someone from doing something nefarious when installing a cpan module. If you
have strict security requirements you really should audit the alienfile and other Perl code
that you are using.
=head1 SEE ALSO
=over 4
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Alien/Build/Plugin/Fetch/PromptBeforeDownload.pm view on Meta::CPAN
This plugin depends on the L<alienfile> using the appropriate channels for downloading external
libraries. It is perfectly legal to write a L<alienfile> that downloads using an external
program like C<wget> or C<curl>, or not go through the normal fetch plugin. There is also
nothing stopping someone from doing something nefarious when installing a cpan module. If you
have strict security requirements you really should audit the alienfile and other Perl code
that you are using.
=head1 SEE ALSO
=over 4
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Alien/Build/Plugin/Fetch/Rewrite.pm view on Meta::CPAN
to local resources. This is useful if you are building CPAN modules that
rely on L<Alien> distributions where you do not have system packages. It
may also seem useful if you do not trust the remote resources, although
please keep in mind that like a C<Makefile.PL> or C<Build.PL>, an L<alienfile>
is arbitrary Perl code, and should be appropriately vetted before being
used in an environment with security requirements.
=head1 CAVEATS
This plugin is only able to rewrite URLs that are fetched through the standard
L<Alien::Build> URL fetching interface, and only URLs that are supported by
view all matches for this distribution
view release on metacpan or search on metacpan
# Alien::Build::Plugin::PkgConfig::PPWrapper [](http://travis-ci.org/shawnlaffan/Alien-Build-Plugin-PkgConfig-PPWrapper)
Alien::Build plugin to ensure the pure perl PkgConfig is not run by the MSYS perl
# SYNOPSIS
view all matches for this distribution
view release on metacpan or search on metacpan
CONTRIBUTING.md view on Meta::CPAN
Idiosyncracies
--------------
* Some files are generated during the build and copied from the
release (see the [CopyFilesFromRelease] section in `dist.ini`]
* Modify `templates/CONTRIBUTING.md` to change `CONTRIBUTING.md`
References
view all matches for this distribution
view release on metacpan or search on metacpan
and telling the user how to view a copy of this License. (Exception: if the
Program itself is interactive but does not normally print such an announcement,
your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License,
and its terms, do not apply to those sections when you distribute them as
separate works. But when you distribute the same sections as part of a whole
which is a work based on the Program, the distribution of the whole must be on
the terms of this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to
work written entirely by you; rather, the intent is to exercise the right to control
the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the
Program (or with a work based on the Program) on a volume of a storage or
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only for noncommercial
distribution and only if you received the program in object code or executable
form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all the
source code for all modules it contains, plus any associated interface definition
files, plus the scripts used to control compilation and installation of the
not permit royalty-free redistribution of the Program by all those who receive
copies directly or indirectly through you, then the only way you could satisfy
both it and this License would be to refrain entirely from distribution of the
Program.
If any portion of this section is held invalid or unenforceable under any particular
circumstance, the balance of the section is intended to apply and the section as
a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other
property right claims or to contest validity of any such claims; this section has
the sole purpose of protecting the integrity of the free software distribution
system, which is implemented by public license practices. Many people have
made generous contributions to the wide range of software distributed through
that system in reliance on consistent application of that system; it is up to the
author/donor to decide if he or she is willing to distribute software through any
other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries
either by patents or by copyrighted interfaces, the original copyright holder who
places the Program under this License may add an explicit geographical
view all matches for this distribution
view release on metacpan or search on metacpan
next unless which($command);
plugin 'Probe::CommandLine' => (
command => $command,
args => [ '--version' ],
version => qr/^Python (3\.[0-9\.]+)$/,
#secondary => $IS_UNIX,
);
$probe = 1;
}
unless( $probe ) {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/MBCSFML.pm view on Meta::CPAN
my ($metafile) = grep { -e $_ } qw/META.json META.yml/ or die "No META information provided\n";
return CPAN::Meta->load_file($metafile);
}
sub manify {
my ( $input_file, $output_file, $section, $opts ) = @_;
return if -e $output_file && -M $input_file <= -M $output_file;
my $dirname = dirname($output_file);
mkpath( $dirname, $opts->{verbose} ) if not -d $dirname;
require Pod::Man;
Pod::Man->new( section => $section )->parse_from_file( $input_file, $output_file );
print "Manifying $output_file\n" if $opts->{verbose} && $opts->{verbose} > 0;
return;
}
sub process_xs {
view all matches for this distribution
view release on metacpan or search on metacpan
CONTRIBUTING.md view on Meta::CPAN
Idiosyncracies
--------------
* Some files are generated during the build and copied from the
release (see the [CopyFilesFromRelease] section in `dist.ini`]
* Modify `templates/CONTRIBUTING.md` to change `CONTRIBUTING.md`
References
view all matches for this distribution