Alien-Build

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

  - Extract::ArchiveTar plugin now probes for bz2 support rather
    than trusting Archive::Tar which can sometimes report incorrectly
    that it supports bz2.

0.91      2017-08-08 05:24:27 -0400
  - Production release identical to 0.90_01

0.90_01   2017-08-07 15:30:27 -0400
  - Add alien_download_ok to Test::Alien::Build
  - Add alien_extract_ok to Test::Alien::Build
  - Extract now ignores pax_global_header, produced by extracting some
    tarballs using older tars (including older versions of Archive::Tar).
  - Fix detection logic for supported compression by tar in Extract::CommandLine

0.89_01   2017-08-07 08:57:48 -0400
  - Extract negotiator plugin checks for .gz and .bz2 support in
    Archive::Tar before using ArchiveTar plugin, and will fallback on
    Extract::CommandLine if it is not available.
  - Extract::ArchiveTar skips appropriate tests if compression
    support is not available

Changes.Alien-Base  view on Meta::CPAN

		but may show where the true problem lies

0.000_010  Apr 24, 2012
	- Prevent build process from cwd-ing from underneath us (hopefully)

0.000_009  Apr 24, 2012
	- Note: Released from 'dlopen' branch
	- Uses new dynamic loading mechanism via DynaLoader

0.000_008  Apr 11, 2012
	- Prevent do_system from changing wd globally

0.000_007  Apr 4, 2012
	- Don't rebuild library on repeated M::B::dispatch
	- More bugfixes

0.000_006  Apr 3, 2012
	- Yet anther bugfix(?) release 

0.000_005  Apr 2, 2012
	- Bugfix: A::B::PkgConfig _manual key shouldn't emit undef values

README  view on Meta::CPAN

      semicolon separated list of plugins to automatically load after
      parsing your alienfile.

    ALIEN_BUILD_PRELOAD

      semicolon separated list of plugins to automatically load before
      parsing your alienfile.

    ALIEN_BUILD_RC

      Perl source file which can override some global defaults for
      Alien::Build, by, for example, setting preload and postload plugins.

    ALIEN_DOWNLOAD_RULE

      This value determines the rules by which types of downloads are
      allowed. The legal values listed under "download_rule", plus default
      which will be the default for the current version of Alien::Build.
      For this version that default is warn.

    ALIEN_INSTALL_NETWORK

corpus/alien_build_plugin_fetch_wget/record/old.json  view on Meta::CPAN

{"-k --content-disposition -S http://localhost/corpus/alien_build_plugin_fetch_wget/dir/foo-1.01.tar":{"stderr":"--2021-05-12 00:10:35--  http://localhost/corpus/alien_build_plugin_fetch_wget/dir/foo-1.01.tar\nResolving localhost (localhost)... ::1, ...

corpus/alien_build_plugin_fetch_wget/record/old.yml  view on Meta::CPAN

                                       Use with care. This option overrides --secure-protocol.
                                       The format and syntax of this string depend on the specific SSL/TLS engine.
    HSTS options:
           --no-hsts                   disable HSTS
           --hsts-file                 path of HSTS database (will override default)
    
    FTP options:
           --ftp-user=USER             set ftp user to USER
           --ftp-password=PASS         set ftp password to PASS
           --no-remove-listing         don't remove '.listing' files
           --no-glob                   turn off FTP file name globbing
           --no-passive-ftp            disable the "passive" transfer mode
           --preserve-permissions      preserve remote file permissions
           --retr-symlinks             when recursing, get linked-to files (not dir)
    
    FTPS options:
           --ftps-implicit                 use implicit FTPS (default port is 990)
           --ftps-resume-ssl               resume the SSL/TLS session started in the control connection when
                                             opening a data connection
           --ftps-clear-data-connection    cipher the control channel only; all the data will be in plaintext
           --ftps-fallback-to-ftp          fall back to FTP if FTPS is not supported in the target server

corpus/vcpkg/r2/installed/vcpkg/info/libxml2_2.9.9-5_x64-windows.list  view on Meta::CPAN

x64-windows/include/libxml/HTMLtree.h
x64-windows/include/libxml/SAX.h
x64-windows/include/libxml/SAX2.h
x64-windows/include/libxml/c14n.h
x64-windows/include/libxml/catalog.h
x64-windows/include/libxml/chvalid.h
x64-windows/include/libxml/debugXML.h
x64-windows/include/libxml/dict.h
x64-windows/include/libxml/encoding.h
x64-windows/include/libxml/entities.h
x64-windows/include/libxml/globals.h
x64-windows/include/libxml/hash.h
x64-windows/include/libxml/list.h
x64-windows/include/libxml/nanoftp.h
x64-windows/include/libxml/nanohttp.h
x64-windows/include/libxml/parser.h
x64-windows/include/libxml/parserInternals.h
x64-windows/include/libxml/pattern.h
x64-windows/include/libxml/relaxng.h
x64-windows/include/libxml/schemasInternals.h
x64-windows/include/libxml/schematron.h

lib/Alien/Base/Wrapper.pm  view on Meta::CPAN

but they are well maintained and reliable, so while there is a small cost in terms of extra
dependencies, the overall reliability thanks to reduced overall complexity.

=head1 CONSTRUCTOR

=head2 new

 my $abw = Alien::Base::Wrapper->new(@aliens);

Instead of passing the aliens you want to use into this modules import you can create
a non-global instance of C<Alien::Base::Wrapper> using the OO interface.

=head1 FUNCTIONS

=head2 cc

 % perl -MAlien::Base::Wrapper=Alien::Foo -e cc -- cflags

Invoke the C compiler with the appropriate flags from C<Alien::Foo> and what
is provided on the command line.

lib/Alien/Build.pm  view on Meta::CPAN

      $CWD = "$tmp";
    },
    verify => sub {

      my $path = '.';
      if($self->meta_prop->{out_of_source} && $self->install_prop->{extract})
      {
        $path = $self->install_prop->{extract};
      }

      my @list = grep { $_->basename !~ /^\./ && $_->basename ne 'pax_global_header' } _path($path)->children;

      my $count = scalar @list;

      if($count == 0)
      {
        die "no files extracted";
      }
      elsif($count == 1 && -d $list[0])
      {
        $ret = $list[0]->absolute->stringify;

lib/Alien/Build.pm  view on Meta::CPAN

semicolon separated list of plugins to automatically load after parsing
your L<alienfile>.

=item ALIEN_BUILD_PRELOAD

semicolon separated list of plugins to automatically load before parsing
your L<alienfile>.

=item ALIEN_BUILD_RC

Perl source file which can override some global defaults for L<Alien::Build>,
by, for example, setting preload and postload plugins.

=item ALIEN_DOWNLOAD_RULE

This value determines the rules by which types of downloads are allowed.  The legal
values listed under L</download_rule>, plus C<default> which will be the default for
the current version of L<Alien::Build>.  For this version that default is C<warn>.

=item ALIEN_INSTALL_NETWORK

lib/Alien/Build/Plugin/Extract/CommandLine.pm  view on Meta::CPAN

      system 'tar', '--version';
    };
    return $bsd_tar = $out =~ /bsdtar/ ? 1 : 0
  }
}

sub tar_cmd
{
  _which('bsdtar')
    ? 'bsdtar'
    # Slowlaris /usr/bin/tar doesn't seem to like pax global header
    # but seems to have gtar in the path by default, which is okay with it
    : $^O eq 'solaris' && _which('gtar')
      ? 'gtar'
      # See note above for Windows logic.
      : _which('tar') && _windows_tar_is_bsdtar()
        ? 'tar'
        : _which('ptar')
          ? 'ptar'
          : undef;
};

maint/ci-test-plugins.pl  view on Meta::CPAN

use strict;
use warnings;
use File::Glob qw( bsd_glob );

exit if $] < 5.012;

my $exit = 0;

my @fails;

sub run
{
  print "% @_\n";
  system(@_);
  if($?)
  {
    push @fails, [@_];
    warn "command failed!";
  }
}

my(@tarball) = bsd_glob 'Alien-Build-*.tar.gz';
die "not exactly one tarball: @tarball" if @tarball != 1;
my $tarball = shift @tarball;
run 'cpanm', '-n', $tarball;

my %min = (
  'Alien::Build::Plugin::Extract::Libarchive' => 5.020
);

# TODO: Alien::Build::Plugin::Build::Premake5

t/alien_base.t  view on Meta::CPAN

use 5.008004;
use Test2::V0 -no_srand => 1;
use lib 'corpus/lib';
use Env qw( @PKG_CONFIG_PATH );
use File::Glob qw( bsd_glob );
use File::chdir;
use Path::Tiny qw( path );
use FFI::CheckLib;
use Text::ParseWords qw( shellwords );
use List::Util qw( first );

my $mock = mock 'FFI::CheckLib' => (
  override => [
    find_lib => sub {
      my %args = @_;

t/alien_base.t  view on Meta::CPAN

        my @libs;
        foreach my $libpath (@libpath)
        {
          if($libpath eq '/roger/opt/libbumblebee/lib')
          {
            push @libs, '/roger/opt/libbumblebee/lib/libbumblebee.so';
            next;
          }
          next unless -d $libpath;
          local $CWD = $libpath;
          push @libs, map { path($_)->absolute->stringify } bsd_glob('*.so*');
        }
        return @libs;
      }
      else
      {
        if($args{lib} eq 'foo')
        {
          return ('/usr/lib/libfoo.so', '/usr/lib/libfoo.so.1');
        }
        else

t/alien_build.t  view on Meta::CPAN

          match qr/^foo.txt.gz SHA256 digest does not match: got $good, expected $bad/,
          'bad signature with filename';

        $build->meta_prop->{digest} = {
          '*' => [ SHA256 => $good ],
        };

        is
          $build->check_digest($file),
          1,
          'good signature with glob';

        $build->meta_prop->{digest} = {
          'foo.txt.gz' => [ FOO92 => $good ],
        };

        is
          dies { $build->check_digest($file) },
          match qr/^No plugin provides digest algorithm for FOO92/,
          'no algorithm';

t/alien_build_plugin_extract_archivetar.t  view on Meta::CPAN

        {
          diag "[out]";
          diag $out;
        }
      }
    }
  }

};

subtest 'archive with pax_global_header' => sub {

  skip_all 'Test requires Archive::Tar'
    unless eval { require Archive::Tar };

  my $build = alienfile_ok q{
    use alienfile;
    use Path::Tiny qw( path );
    plugin 'Test::Mock',
      probe    => 'share',
      download => {

t/alien_build_plugin_extract_commandline.t  view on Meta::CPAN

      foreach my $name (qw( configure foo.c ))
      {
        my $file = $dir->child($name);
        ok -f $file, "$name exists";
      }
    }
  }

};

subtest 'archive with pax_global_header' => sub {

  skip_all "system does not support tar" unless Alien::Build::Plugin::Extract::CommandLine->new->handles('tar');

  my $build = alienfile_ok q{
    use alienfile;
    use Path::Tiny qw( path );
    plugin 'Test::Mock',
      probe => 'share',
      download => {
        'foo.tar' => path(__FILE__)->parent->parent->child('corpus/dist2/foo.tar')->slurp_raw,



( run in 0.373 second using v1.01-cache-2.11-cpan-eab888a1d7d )