Giter Site home page Giter Site logo

alien-base-modulebuild's Introduction

Alien::Base::ModuleBuild linux windows macos

A Module::Build subclass for building Alien:: modules and their libraries

SYNOPSIS

In your Build.PL:

use Alien::Base::ModuleBuild;

my $builder = Alien::Base::ModuleBuild->new(
  module_name => 'Alien::MyLibrary',

  configure_requires => {
    'Alien::Base::ModuleBuild' => '0.005',
    'Module::Build' => '0.28'
  },
  requires => {
    'Alien::Base' => '0.005',
  },

  alien_name => 'mylibrary', # the pkg-config name if you want
                             # to use pkg-config to discover
                             # system version of the mylibrary

  alien_repository => {
    protocol => 'https',
    host     => 'myhost.org',
    location => '/path/to/tarballs',
    pattern  => qr{^mylibrary-([0-9\.]+)\.tar\.gz$},
  },

  # this is the default:
  alien_build_commands => [
    "%c --prefix=%s", # %c is a platform independent version of ./configure
    "make",
  ],

  # this is the default for install:
  alien_install_commands => [
    "make install",
  ],

  alien_isolate_dynamic => 1,
);

DESCRIPTION

NOTE: Please consider for new development of Aliens that you use Alien::Build and alienfile instead. Like this module they work with Alien::Base. Unlike this module they are more easily customized and handle a number of corner cases better. For a good place to start, please see Alien::Build::Manual::AlienAuthor. Although the Alien-Base / Alien-Build team will continue to maintain this module, (we will continue to fix bugs where appropriate), we aren't adding any new features to this module.

This is a subclass of Module::Build, that with Alien::Base allows for easy creation of Alien distributions. This module is used during the build step of your distribution. When properly configured it will

  • use pkg-config to find and use the system version of the library
  • download, build and install the library if the system does not provide it

METHODS

alien_check_installed_version

[version 0.001]

my $version = $abmb->alien_check_installed_version;

This function determines if the library is already installed as part of the operating system, and returns the version as a string. If it can't be detected then it should return empty list.

The default implementation relies on pkg-config, but you will probably want to override this with your own implementation if the package you are building does not use pkg-config.

alien_check_built_version

[version 0.006]

my $version = $amb->alien_check_built_version;

This function determines the version of the library after it has been built from source. This function only gets called if the operating system version can not be found and the package is successfully built. The version is returned on success. If the version can't be detected then it should return empty list. Note that failing to detect a version is considered a failure and the corresponding ./Build action will fail!

Any string is valid as a version as far as Alien::Base is concerned. The most useful value would be a number or dotted decimal that most software developers recognize and that software tools can differentiate. In some cases packages will not have a clear version number, in which case the string unknown would be a reasonable choice.

The default implementation relies on pkg-config, and other heuristics, but you will probably want to override this with your own implementation if the package you are building does not use pkg-config.

When this method is called, the current working directory will be the build root.

If you see an error message like this:

Library looks like it installed, but no version was determined

After the package is built from source code then you probably need to provide an implementation for this method.

alien_extract_archive

[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

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

Original author: Joel A Berger [email protected]

Current maintainer: Graham Ollis [email protected]

Contributors:

David Mertens (run4flat)

Mark Nunberg (mordy, mnunberg)

Christian Walde (Mithaldu)

Brian Wightman (MidLifeXis)

Graham Ollis (plicease)

Zaki Mughal (zmughal)

mohawk2

Vikas N Kumar (vikasnkumar)

Flavio Poletti (polettix)

Salvador Fandiño (salva)

Gianni Ceccarelli (dakkar)

Pavel Shaydo (zwon, trinitum)

Kang-min Liu (劉康民, gugod)

Nicholas Shipp (nshp)

Petr Písař (ppisar)

Alberto Simões (ambs)

COPYRIGHT AND LICENSE

This software is copyright (c) 2012-2022 by Joel A Berger.

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

alien-base-modulebuild's People

Contributors

alranel avatar ambs avatar dakkar avatar giatorta avatar gugod avatar jberger avatar jtpalmer avatar midlifexis avatar mohawk2 avatar nshp avatar plicease avatar polettix avatar preaction avatar run4flat avatar salva avatar vikasnkumar avatar zmughal avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

ppisar sysfce2

alien-base-modulebuild's Issues

Probably harmless diagnostic

When building Alien::uPB (which has the appropriate configuration):

twin% perl Build.PL
+ pkg-config --modversion uPB
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Alien-uPB' version '0.12'
twin% ./Build
Building Alien-uPB
+ pkg-config --modversion uPB
Use of uninitialized value in pattern match (m//) at /home/ollisg/opt/perl/5.30.0-RC2/lib/site_perl/5.30.0/Alien/Base/ModuleBuild/Repository.pm line 22.
Downloading File: https://github.com/mbarbon/upb/archive/a99b98f94f3289c50f653e2ab7d87d2416bbb89b.zip ... Done
Extracting Archive ... Done
Building library ... 
+ cd /tmp/Alien-uPB-0.12/_alien/upb-a99b98f94f3289c50f653e2ab7d87d2416bbb89b
+ make default googlepb CXXFLAGS="-std=c++11" USER_CPPFLAGS="-pthread -fPIC" 
CC upb/def.c
upb/def.c: In function ‘upb_fielddef_descriptortype’:
upb/def.c:1066:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
...

Note the diagnostic:

Use of uninitialized value in pattern match (m//) at /home/ollisg/opt/perl/5.30.0-RC2/lib/site_perl/5.30.0/Alien/Base/ModuleBuild/Repository.pm line 22.

I think this is harmless, and the undef should be checked in ABMB, but need to do some due diligence first. Otherwise it may need to be reported to Alien::uPB.

Build.PL still checks for pkg-config

1.00 removed Alien::Base::PkgConfig module, but Build.PL still checks for pkg-config and PkgConfig:

unless (`pkg-config --version` && $? == 0) {
  $build_args{'requires'}->{'PkgConfig'} = '0.07520';
}

# For now we prefer PkgConfig.pm over pkg-config on
# Solaris 64 bit Perls.  We may need to do this on
# other platforms, in which case this logic should
# be abstracted so that it can be shared here and
# in lib/Alien/Base.pm#pkg_config_command
if($^O eq 'solaris' && $Config{ptrsize} == 8) {
  $build_args{'requires'}->{'PkgConfig'} = '0.08826';
}

I think the code could be removed from the Build.PL.

Running ./Build test before ./Build might skip package tests

twin% perl Build.PL
+ pkg-config --modversion uPB
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Alien-uPB' version '0.12'
twin% ./Build test
Use of uninitialized value in string eq at /home/ollisg/opt/perl/5.30.0-RC2/lib/site_perl/5.30.0/Alien/Base/ModuleBuild.pm line 507.
Testing library (if applicable) ... Done
+ pkg-config --modversion uPB
Use of uninitialized value in pattern match (m//) at /home/ollisg/opt/perl/5.30.0-RC2/lib/site_perl/5.30.0/Alien/Base/ModuleBuild/Repository.pm
 line 22.
Downloading File: https://github.com/mbarbon/upb/archive/a99b98f94f3289c50f653e2ab7d87d2416bbb89b.zip ... Done
Extracting Archive ... Done
Building library ... 
+ cd /tmp/Alien-uPB-0.12/_alien/upb-a99b98f94f3289c50f653e2ab7d87d2416bbb89b
+ make default googlepb CXXFLAGS="-std=c++11" USER_CPPFLAGS="-pthread -fPIC" 
...

Note the diagnostic:

Use of uninitialized value in string eq at /home/ollisg/opt/perl/5.30.0-RC2/lib/site_perl/5.30.0/Alien/Base/ModuleBuild.pm line 507.

It's not the normal order of how ./Build and ./Build test are invoked by cpan clients, but it is probably a legal thing to do, and in the very least it should be easy enough to support.

This is a harmless diagnostic for Aliens that do not have package tests (that is execute tests that come with the alienized packages, rather than the perl tests in t), but for Aliens with package tests this is a problem, as the packaged tests will be skipped.

This diagnostic was reported via email by someone saying they saw the diagnostic when running ./Build first, but I wasn't able to reproduce it with the ABMB 1.06.

Provide better diagnostics for when SSL libraries are not installed.

HTTP::Tiny has an annoying way of handing exceptions and as a result AB::MB has for a long time had the very unhelpful "Internal Exception" error for any connection error.

Bonus points: the best way to get the SSL prereqs is to specify https as a protocol instead of http. This hasn't been documented well unfortunately, so the diagnostic for an SSL failure should direct to a FAQ or issue which explains the best way for the maintainer to fix it.

Messed '%s' value

Hi

Accordingly with the docs, %s is "The full path to the final installed location of the share directory (builder method alien_library_destination). This is where the library should install itself; for autoconf style installs this will look like".

Nevertheless, I am getting:
./configure --prefix=/root/.cpanm/work/1574460480.32178/Alien-ImageMagick-0.07/blib/lib/auto/share/dist/Alien-ImageMagick ...

And of course that doesn't make sense.

Although the resulting files get installed in the proper place (as blib is copied) the C code from the library is configured with this specific path hardcoded, and when running, it will search for that path to get its dependencies.

Is there something I might be missing? Or is it a bug and can be fixed?
Thanks

Suspected link extor fail on older Perls

The fetch should warn if it fails, so I think it is having trouble extracting the links from the HTML.
http://www.cpantesters.org/cpan/report/0ebc1ef4-00f5-11e9-afbf-aec3b07506ca
http://www.cpantesters.org/cpan/report/5eadb9dc-00f4-11e9-afbf-aec3b07506ca
http://www.cpantesters.org/cpan/report/9ca6a5c4-00f3-11e9-afbf-aec3b07506ca

# 
#                      perl 5.008009
#    Acme::Alien::DontPanic undefined
#       Acme::Ford::Prefect undefined
#  Acme::Ford::Prefect::FFI undefined
#              Alien::Build 1.49
#          Archive::Extract 0.80
#              Archive::Tar 2.04
#             Capture::Tiny 0.30
#                File::Spec 3.74
#                File::Temp 0.22
#               File::chdir 0.1010
#           HTML::LinkExtor 3.69
#                HTTP::Tiny 0.056
#                    Inline undefined
#                 Inline::C undefined
#               Inline::CPP undefined
#            LWP::UserAgent 6.35
#             Module::Build 0.4216
#                  Net::FTP 2.77
#   Shell::Config::Generate 0.33
#              Shell::Guess 0.09
#            Sort::Versions 1.62
#                Test2::API 1.302136
#                 Test2::V0 0.000117
#          Text::ParseWords 3.27
#                       URI 1.69
#                    parent 0.234
t/00_diag.t .................................. ok
t/alien_base_modulebuild_cabinet.t ........... ok
t/alien_base_modulebuild_file.t .............. ok
t/alien_base_modulebuild_repository.t ........ ok
Variable "$bin" will not stay shared at (eval 181) line 15.
t/alien_base_modulebuild_repository_ftp.t .... ok
        # Failed test at t/alien_base_modulebuild_repository_http.t line 104.
        # +------+------------------+---------------------+
        # | PATH | GOT              | CHECK               |
        # +------+------------------+---------------------+
        # | [0]  | <DOES NOT EXIST> | relativepackage.txt |
        # +------+------------------+---------------------+
    # Failed test 'LWP::UserAgent'
    # at t/alien_base_modulebuild_repository_http.t line 105.

# Failed test 'list_files()'
# at t/alien_base_modulebuild_repository_http.t line 106.
t/alien_base_modulebuild_repository_http.t ... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/9 subtests 
t/alien_base_modulebuild_repository_local.t .. ok
t/alien_base_modulebuild.t ................... ok
t/inline.t ................................... skipped: Module 'Inline' is not installed
t/alien_base_modulebuild_utils.t ............. ok
t/inline_cpp.t ............................... skipped: Module 'Inline' is not installed

Test Summary Report
-------------------
t/alien_base_modulebuild_repository_http.t (Wstat: 256 Tests: 9 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=11, Tests=58,  2 wallclock secs ( 0.08 usr  0.03 sys +  2.79 cusr  0.56 csys =  3.46 CPU)
Result: FAIL
Failed 1/11 test programs. 1/58 subtests failed.

List::Util 1.45 Required But Not Enforced, Installation Fails

Installation of Alien::Base::ModuleBuild fails on a fresh Ubuntu v16.04.4 with the default Perl v5.22.1, this is causing everything else to fail such as Alien::GSL and RPerl itself, etc etc.

The main failure appears to be due to the currently-installed List::Util v1.41 not providing the uniq() subroutine:

t/00_diag.t .................................. ok
"uniq" is not exported by the List::Util module
Can't continue after import errors at /home/wbraswell/.cpanm/work/1580604471.6262/Alien-Base-ModuleBuild-1.11/blib/lib/Alien/Base/ModuleBuild.pm line 16

I can see that we are already requiring List::Util v1.45 in order get access to the 'uniq()' subroutine:

https://github.com/Perl5-Alien/Alien-Base-ModuleBuild/blob/master/dist.ini#L29

However, cpanm does not actually enforce the requirement of List::Util v1.45, and lets Alien::Base::ModuleBuild start running tests without recursively installing a List::Util upgrade.

The full output from A::B::MB failure is below:

$ cpanm -v --installdeps RPerl
...
Building and testing Alien-Base-ModuleBuild-1.11 ... Building Alien-Base-ModuleBuild
# 
# 
# 
# HARNESS_ACTIVE=1
# HARNESS_VERSION=3.35
# LANG=en_US.UTF-8
# PERL5LIB=/home/wbraswell/.cpanm/work/1580604471.6262/Alien-Base-ModuleBuild-1.11/blib/lib:/home/wbraswell/.cpanm/work/1580604471.6262/Alien-Base-ModuleBuild
-1.11/blib/arch:lib:/home/wbraswell/perl5/lib/perl5/5.22.1/x86_64-linux-gnu-thread-multi:/home/wbraswell/perl5/lib/perl5/5.22.1:/home/wbraswell/perl5/lib/perl
5/x86_64-linux-gnu-thread-multi:/home/wbraswell/perl5/lib/perl5:lib:/home/wbraswell/perl5/lib/perl5
# PERL_DL_NONLAZY=1
# PERL_LOCAL_LIB_ROOT=/home/wbraswell/perl5
# PERL_MB_OPT=--install_base "/home/wbraswell/perl5"
# PERL_MM_OPT=INSTALL_BASE=/home/wbraswell/perl5
# PERL_MM_USE_DEFAULT=1
# PERL_USE_UNSAFE_INC=1
# SHELL=/bin/bash
# 
# 
# 
# PERL5LIB path
# /home/wbraswell/.cpanm/work/1580604471.6262/Alien-Base-ModuleBuild-1.11/blib/lib
# /home/wbraswell/.cpanm/work/1580604471.6262/Alien-Base-ModuleBuild-1.11/blib/arch
# lib
# /home/wbraswell/perl5/lib/perl5/5.22.1/x86_64-linux-gnu-thread-multi
# /home/wbraswell/perl5/lib/perl5/5.22.1
# /home/wbraswell/perl5/lib/perl5/x86_64-linux-gnu-thread-multi
# /home/wbraswell/perl5/lib/perl5
# lib
# /home/wbraswell/perl5/lib/perl5
# 
# 
# 
# perl                    5.022001
# Alien::Base             1.98
# Alien::Base::PkgConfig  1.98
# Archive::Extract        0.86
# Archive::Tar            2.04
# Capture::Tiny           0.48
# File::chdir             0.1010
# HTTP::Tiny              0.054
# Module::Build           0.4216
# Path::Tiny              0.112
# Shell::Config::Generate 0.33
# Shell::Guess            0.09
# Sort::Versions          1.62
# Test2::Mock             0.000129
# Test2::Require::Module  0.000129
# Test2::V0               0.000129
# URI                     1.71
# URI::file               4.21
# parent                  0.232
# 
# 
# 
t/00_diag.t .................................. ok
"uniq" is not exported by the List::Util module
Can't continue after import errors at /home/wbraswell/.cpanm/work/1580604471.6262/Alien-Base-ModuleBuild-1.11/blib/lib/Alien/Base/ModuleBuild.pm line 16.
BEGIN failed--compilation aborted at /home/wbraswell/.cpanm/work/1580604471.6262/Alien-Base-ModuleBuild-1.11/blib/lib/Alien/Base/ModuleBuild.pm line 16.
Compilation failed in require at t/alien_base_modulebuild.t line 4.
BEGIN failed--compilation aborted at t/alien_base_modulebuild.t line 4.
t/alien_base_modulebuild.t ................... 
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
t/alien_base_modulebuild_cabinet.t ........... ok
t/alien_base_modulebuild_file.t .............. ok
t/alien_base_modulebuild_repository.t ........ ok
t/alien_base_modulebuild_repository_ftp.t .... ok
t/alien_base_modulebuild_repository_http.t ... ok
t/alien_base_modulebuild_repository_local.t .. ok
t/alien_base_modulebuild_utils.t ............. ok
t/inline.t ................................... skipped: Module 'Inline' is not installed
t/inline_cpp.t ............................... skipped: Module 'Inline' is not installed

Test Summary Report
-------------------
t/alien_base_modulebuild.t                 (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: No plan found in TAP output
Files=11, Tests=39,  3 wallclock secs ( 0.05 usr  0.03 sys +  2.79 cusr  0.28 csys =  3.15 CPU)
Result: FAIL
Failed 1/11 test programs. 0/39 subtests failed.
! Installing Alien::Base::ModuleBuild failed. See /home/wbraswell/.cpanm/work/1580604471.6262/build.log for details. Retry with --force to force install it.
FAIL

Test t/alien_base_modulebuild_repository_http.t fails on Windows 10, MSYS2

System info: Windows 10, MSYS2, perl version 5.32.2.

$ ./Build test
t/00_diag.t .................................. 1/? #
#
#
# HARNESS_ACTIVE=1
# HARNESS_VERSION=3.42
# LANG=en_US.UTF-8
# PERL5LIB=/home/hakon/perl/cpan-source/debug/Alien-Base-ModuleBuild-1.14/blib/lib:/home/hakon/perl/cpan-source/debug/Alien-Base-ModuleBuild-1.14/blib/arch
# PERL_DL_NONLAZY=1
# PERL_USE_UNSAFE_INC=1
# SHELL=/usr/bin/bash
#
#
#
# PERL5LIB path
# /home/hakon/perl/cpan-source/debug/Alien-Base-ModuleBuild-1.14/blib/lib
# /home/hakon/perl/cpan-source/debug/Alien-Base-ModuleBuild-1.14/blib/arch
#
#
#
# perl                    5.032000
# Acme::Alien::DontPanic  -
# Alien::Base             2.26
# Alien::Base::PkgConfig  2.26
# Archive::Extract        0.86
# Archive::Tar            2.36
# Capture::Tiny           0.48
# Digest::SHA             6.02
# File::chdir             0.1010
# HTML::LinkExtor         3.69
# HTTP::Tiny              0.076
# Inline                  -
# Inline::C               -
# Inline::CPP             -
# LWP::UserAgent          6.46
# List::Util              1.55
# Module::Build           0.4231
# Path::Tiny              0.114
# Shell::Config::Generate 0.34
# Shell::Guess            0.09
# Sort::Versions          1.62
# Test2::V0               0.000130
# Text::ParseWords        3.30
# URI                     1.76
# URI::file               4.21
# parent                  0.238
#
#
#
t/00_diag.t .................................. ok
t/alien_base_modulebuild.t ................... ok
t/alien_base_modulebuild_cabinet.t ........... ok
t/alien_base_modulebuild_file.t .............. ok
t/alien_base_modulebuild_repository.t ........ ok
t/alien_base_modulebuild_repository_ftp.t .... ok
t/alien_base_modulebuild_repository_http.t ... 1/?         # Failed test at t/alien_base_modulebuild_repository_http.t line 102.
        # +------+------------------+---------------------+
        # | PATH | GOT              | CHECK               |
        # +------+------------------+---------------------+
        # | [0]  | <DOES NOT EXIST> | relativepackage.txt |
        # +------+------------------+---------------------+
    # Failed test 'LWP::UserAgent'
    # at t/alien_base_modulebuild_repository_http.t line 103.

# Failed test 'list_files()'
# at t/alien_base_modulebuild_repository_http.t line 104.
t/alien_base_modulebuild_repository_http.t ... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/9 subtests
t/alien_base_modulebuild_repository_local.t .. ok
t/alien_base_modulebuild_utils.t ............. ok
t/inline.t ................................... skipped: test requires Inline 0.56 + Inline::C + Acme::Alien::DontPanic 0.010
t/inline_cpp.t ............................... skipped: test requires Inline 0.56 + Inline::C + Acme::Alien::DontPanic 0.010

Test Summary Report
-------------------
t/alien_base_modulebuild_repository_http.t (Wstat: 256 Tests: 9 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=11, Tests=58, 17 wallclock secs ( 0.06 usr  0.09 sys +  3.91 cusr  7.70 csys = 11.77 CPU)
Result: FAIL
Failed 1/11 test programs. 1/58 subtests failed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.