Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install Issue, I::CPP Install Fails Due to EU::CppGuess Bug #38

Closed
wbraswell opened this issue Jun 27, 2016 · 18 comments
Closed

Install Issue, I::CPP Install Fails Due to EU::CppGuess Bug #38

wbraswell opened this issue Jun 27, 2016 · 18 comments

Comments

@wbraswell
Copy link
Contributor

wbraswell commented Jun 27, 2016

This is on an RPerl user's machine (not mine), Ubuntu v12.04 w/ Perlbrew installed Perl v5.20.2, g++ 4.8.1, EU::MM 7.18 both system-wide & single-user via Perlbrew, the error appears near'ish to the bottom of the big paste below, here is a snippet for convenience:

$ cpanm -v ExtUtils::CppGuess

... STUFF HAPPENS ...

t/011_makemaker.t ..... 1/1
_# Failed test 'build with ExtUtils::MakeMaker'
_# at t/011_makemaker.t line 12.

... MORE STUFF AS SEEN IN PASTE DUMP BELOW ...

This is a major problem, can't install Inline::CPP or RPerl for new users! :-(

$ cpanm -v ExtUtils::CppGuess

OK
Checking dependencies from MYMETA.json ...
Checking if you have Test::More 0.49 ... Yes (1.001002)
... LOTS OF CHECKING, ALL OKAY ...
Checking if you have Parse::CPAN::Meta 1.4401 ... Yes (1.4414)
Building and testing Module-Build-0.4218 ... Building Module-Build
t/00-compile.t ................. ok  
t/PL_files.t ................... ok  
... LOTS OF TESTING, ALL OKAY ...
t/xs.t ......................... ok  
All tests successful.
Files=53, Tests=1167, 52 wallclock secs ( 0.52 usr  0.10 sys + 40.62 cusr  7.93 csys = 49.17 CPU)
Result: PASS
Building Module-Build
Installing /home/foouser/perl5/perlbrew/perls/perl-5.20.2/man/man1/config_data.1
... LOTS OF INSTALLING, ALL OKAY ...
Installing /home/foouser/perl5/perlbrew/perls/perl-5.20.2/bin/config_data
OK
Successfully installed Module-Build-0.4218 (upgraded from 0.4205)
Installing /home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/site_perl/5.20.2/x86_64-linux/.meta/Module-Build-0.4218/MYMETA.json
Installing /home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/site_perl/5.20.2/x86_64-linux/.meta/Module-Build-0.4218/install.json
Searching Capture::Tiny (0) on cpanmetadb ...
--2016-06-27 00:41:11--  http://cpanmetadb.plackperl.org/v1.0/package/Capture::Tiny
Resolving cpanmetadb.plackperl.org (cpanmetadb.plackperl.org)... 23.235.47.249, 199.27.79.249
Connecting to cpanmetadb.plackperl.org (cpanmetadb.plackperl.org)|23.235.47.249|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 67 [text/yaml]
Saving to: `STDOUT'

100%[==================================================>] 67          --.-K/s   in 0s      

2016-06-27 00:41:11 (6.04 MB/s) - written to stdout [67/67]

--> Working on Capture::Tiny
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.42.tar.gz ... --2016-06-27 00:41:11--  http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.42.tar.gz
Resolving www.cpan.org (www.cpan.org)... 2607:f238:3::91:1, 207.171.7.91
Connecting to www.cpan.org (www.cpan.org)|2607:f238:3::91:1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 36671 (36K) [application/x-gzip]
Saving to: `Capture-Tiny-0.42.tar.gz'

100%[==================================================>] 36,671      --.-K/s   in 0.1s    

2016-06-27 00:41:11 (367 KB/s) - `Capture-Tiny-0.42.tar.gz' saved [36671/36671]

OK
Unpacking Capture-Tiny-0.42.tar.gz
Capture-Tiny-0.42/
... LOTS OF UNPACKING, ALL OKAY ...
Capture-Tiny-0.42/examples/tee.pl
Entering Capture-Tiny-0.42
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.18)
Running Makefile.PL
Configuring Capture-Tiny-0.42 ... Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Capture::Tiny
Writing MYMETA.yml and MYMETA.json
OK
Checking dependencies from MYMETA.json ...
Checking if you have Test::More 0.62 ... Yes (1.001002)
Checking if you have IO::File 0 ... Yes (1.16)
... LOTS OF CHECKING, ALL OKAY ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.18)
Checking if you have Carp 0 ... Yes (1.3301)
Building and testing Capture-Tiny-0.42 ... cp lib/Capture/Tiny.pm blib/lib/Capture/Tiny.pm
Manifying 1 pod document
PERL_DL_NONLAZY=1 "/home/foouser/perl5/perlbrew/perls/perl-5.20.2/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef _Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/_.t
t/00-report-prereqs.t ...... _# 
# Versions for all modules listed in MYMETA.json (including optional ones):
# 
# === Configure Requires ===
# 
#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker 6.17 7.18
# 
# === Build Requires ===
# 
#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker  any 7.18
# 
# === Test Requires ===
# 
#     Module              Want     Have
#     ------------------- ---- --------
#     ExtUtils::MakeMaker  any     7.18
#     File::Spec           any  3.48_01
#     IO::File             any     1.16
#     Test::More          0.62 1.001002
#     lib                  any     0.63
# 
# === Test Recommends ===
# 
#     Module         Want     Have
#     ---------- -------- --------
#     CPAN::Meta 2.120900 2.143240
# 
# === Runtime Requires ===
# 
#     Module       Want    Have
#     ------------ ---- -------
#     Carp          any  1.3301
#     Exporter      any    5.71
#     File::Spec    any 3.48_01
#     File::Temp    any  0.2304
#     IO::Handle    any    1.35
#     Scalar::Util  any    1.38
#     strict        any    1.08
#     warnings      any    1.23
# 
t/00-report-prereqs.t ...... ok  
t/01-Capture-Tiny.t ........ ok  
... LOTS OF TESTING, ALL OKAY ...
t/25-cap-fork.t ............ ok  
All tests successful.
Files=24, Tests=12005, 40 wallclock secs ( 2.50 usr  0.20 sys + 21.84 cusr 14.25 csys = 38.79 CPU)
Result: PASS
Manifying 1 pod document
Installing /home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/site_perl/5.20.2/Capture/Tiny.pm
Installing /home/foouser/perl5/perlbrew/perls/perl-5.20.2/man/man3/Capture::Tiny.3
Appending installation info to /home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/5.20.2/x86_64-linux/perllocal.pod
OK
Successfully installed Capture-Tiny-0.42
Installing /home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/site_perl/5.20.2/x86_64-linux/.meta/Capture-Tiny-0.42/MYMETA.json
Installing /home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/site_perl/5.20.2/x86_64-linux/.meta/Capture-Tiny-0.42/install.json
Building and testing ExtUtils-CppGuess-0.11 ... cp lib/ExtUtils/CppGuess.pm blib/lib/ExtUtils/CppGuess.pm
Manifying 1 pod document
PERL_DL_NONLAZY=1 "/home/foouser/perl5/perlbrew/perls/perl-5.20.2/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef _Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/_.t
t/001_load.t .......... 1/2 _# EUMM:$VAR1 = {
#           'CCFLAGS' => ' -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -xc++ ',
#           'dynamic_lib' => {
#                              'OTHERLDFLAGS' => ' -lstdc++ '
#                            }
#         };
# ---
# MB:$VAR1 = {
#           'extra_compiler_flags' => ' -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -xc++ ',
#           'extra_linker_flags' => ' -lstdc++ '
#         };
t/001_load.t .......... ok  
t/010_module_build.t .. ok  
t/011_makemaker.t ..... 1/1 
#   Failed test 'build with ExtUtils::MakeMaker'
#   at t/011_makemaker.t line 12.
# Makefile.PL output
# ========================================
# Checking if your kit is complete...
# Looks good
# Generating a Unix-style Makefile
# Writing Makefile for CppGuessTest
# Writing MYMETA.yml and MYMETA.json
# ========================================
# make output
# ========================================
# make[1]: Entering directory '/home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker'
# cp lib/CppGuessTest.pm blib/lib/CppGuessTest.pm
# Running Mkbootstrap for CppGuessTest ()
# chmod 644 "CppGuessTest.bs"
# "/home/foouser/perl5/perlbrew/perls/perl-5.20.2/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- CppGuessTest.bs blib/arch/auto/CppGuessTest/CppGuessTest.bs 644
# "/home/foouser/perl5/perlbrew/perls/perl-5.20.2/bin/perl" "/home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/5.20.2/ExtUtils/xsubpp"  -typemap '/home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/5.20.2/ExtUtils/typemap' -typemap '/home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker/typemap'  CppGuessTest.xs > CppGuessTest.xsc
# mv CppGuessTest.xsc CppGuessTest.c
# cc -c   -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -xc++  -O2   -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -fPIC "-I/home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/5.20.2/x86_64-linux/CORE"   CppGuessTest.c
# rm -f blib/arch/auto/CppGuessTest/CppGuessTest.so
# cc  -shared -O2 -L/usr/local/lib -fstack-protector -o blib/arch/auto/CppGuessTest/CppGuessTest.so -lstdc++  CppGuessTest.o  \
#         \
#  
# chmod 755 blib/arch/auto/CppGuessTest/CppGuessTest.so
# make[1]: Leaving directory '/home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker'
# ========================================
# make test output
# ========================================
# make[1]: Entering directory '/home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker'
# "/home/foouser/perl5/perlbrew/perls/perl-5.20.2/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- CppGuessTest.bs blib/arch/auto/CppGuessTest/CppGuessTest.bs 644
# PERL_DL_NONLAZY=1 "/home/foouser/perl5/perlbrew/perls/perl-5.20.2/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef _Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/_.t
# 
# _#   Failed test 'use CppGuessTest;'
# _#   at t/001_load.t line 6.
# _#     Tried to use 'CppGuessTest'.
# _#     Error:  Can't load '/home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so' for module CppGuessTest: /home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so: undefined symbol: _ZNSs4_Rep20_S_empty_rep_storageE at /home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/5.20.2/x86_64-linux/DynaLoader.pm line 193.
# #  at t/001_load.t line 6.
# # Compilation failed in require at t/001_load.t line 6.
# # BEGIN failed--compilation aborted at t/001_load.t line 6.
# # Looks like you failed 1 test of 1.
# t/001_load.t .. 
# Dubious, test returned 1 (wstat 256, 0x100)
# Failed 1/1 subtests 
# Can't load '/home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so' for module CppGuessTest: /home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so: undefined symbol: _ZNSs4_Rep20_S_empty_rep_storageE at /home/foouser/perl5/perlbrew/perls/perl-5.20.2/lib/5.20.2/x86_64-linux/DynaLoader.pm line 193.
#  at t/002_base.t line 6.
# Compilation failed in require at t/002_base.t line 6.
# BEGIN failed--compilation aborted at t/002_base.t line 6.
# _# Looks like your test exited with 255 before it could output anything.
# t/002_base.t .. 
# Dubious, test returned 255 (wstat 65280, 0xff00)
# Failed 2/2 subtests 
# 
# Test Summary Report
# -------------------
# t/001_load.t (Wstat: 256 Tests: 1 Failed: 1)
#   Failed test:  1
#   Non-zero exit status: 1
# t/002_base.t (Wstat: 65280 Tests: 0 Failed: 0)
#   Non-zero exit status: 255
#   Parse errors: Bad plan.  You planned 2 tests but ran 0.
# Files=2, Tests=1,  0 wallclock secs ( 0.03 usr  0.00 sys +  0.04 cusr  0.00 csys =  0.07 CPU)
# Result: FAIL
# Failed 2/2 test programs. 1/1 subtests failed.
# make[1]: **\* [test_dynamic] Error 255
# make[1]: Leaving directory '/home/foouser/.cpanm/work/1467013215.15356/ExtUtils-CppGuess-0.11/t/makemaker'
# ========================================
# Looks like you failed 1 test of 1.
t/011_makemaker.t ..... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests 

Test Summary Report
....................................
t/011_makemaker.t   (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=3, Tests=4,  2 wallclock secs ( 0.03 usr  0.02 sys +  2.12 cusr  0.32 csys =  2.49 CPU)
Result: FAIL
Failed 1/3 test programs. 1/4 subtests failed.
make: **\* [test_dynamic] Error 1
FAIL
! Installing ExtUtils::CppGuess failed. See /home/foouser/.cpanm/work/1467013215.15356/build.log for details. Retry with --force to force install it.
2 distributions installed
@galactus6x
Copy link

galactus6x commented Jun 27, 2016

I am the one trying to get RPerl installed, please ask me if you need any additional information about my operating system, etc.

@daoswald
Copy link
Owner

A year or so ago we felt strongly that ExtUtils::CPPGuess would be a good separation of concerns for the Inline:::CPP installation process. The idea was that IL::CPP shouldn't have to provide what another module is doing a better, more portable, and more generally useful job of doing already. Even if that module were falling short in some way (the theory was) community support for that module would drive its development at a better rate than "one-off" solutions baked into Inline::CPP. Furthermore, even if we had to do the fixing of ExtUtils::CPPGuess ourselves, it would be better to fix that module so that the community could benefit rather than patching Inline::CPP such that only users of that distribution might benefit.

Unfortunately this has not worked out as well as I had hoped. ExtUtils::CPPGuess turns out to need a bit of a rewrite in order to be better extensible, and more portable. And the community (of which I am a part) just haven't stepped in to improve it.

The best immediate solution is to modify Inline::CPP so that the ExtUtils::CPPGuess module becomes a "recommends" rather than "requires", and so that Makefile.PL is able to recover gracefully in its absence. The right way to do this is to modify the meta produced by Makefile.PL, and also to modify the modules bundled into inc/ so that they have better fall-back support.

Doing so will not be difficult, but will probably have to wait until I get back from vacation in a week or so. I'll try to prioritize it as my non-$work time permits sometime soon after I return.

@daoswald daoswald changed the title Major Issue, I::CPP Install Fails Due to EU::CppGuess Bug Install Issue, I::CPP Install Fails Due to EU::CppGuess Bug Jun 27, 2016
@wbraswell
Copy link
Contributor Author

@daoswald
Wow great background info, thanks for helping clarify the situation!

Also, sorry for interrupting your vacation, I hope y'all have a really fun time. :-)

We look forward to working with you when you are back home.

@wbraswell
Copy link
Contributor Author

@daoswald
I am continuing to get bug reports about this, any status update? Thanks! :-)

@wbraswell
Copy link
Contributor Author

@daoswald
This is still a critical bug causing failure to install, please help!

@wbraswell
Copy link
Contributor Author

Ping

@wbraswell
Copy link
Contributor Author

wbraswell commented Jan 12, 2017

@daoswald
This bug is still causing fatal failures in Perl v5.24 on Travis, what can I do in order to help get a fix released???

https://s3.amazonaws.com/archive.travis-ci.org/jobs/191275673/log.txt

t/011_makemaker.t ..... 1/1 
#   Failed test 'build with ExtUtils::MakeMaker'
#   at t/011_makemaker.t line 12.
# Makefile.PL output
# ========================================
# Checking if your kit is complete...
# Looks good
# Generating a Unix-style Makefile
# Writing Makefile for CppGuessTest
# Writing MYMETA.yml and MYMETA.json
# ========================================
# make output
# ========================================
# make[1]: Entering directory `/home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker'
# cp lib/CppGuessTest.pm blib/lib/CppGuessTest.pm
# Running Mkbootstrap for CppGuessTest ()
# chmod 644 "CppGuessTest.bs"
# "/home/travis/perl5/perlbrew/perls/5.24/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- CppGuessTest.bs blib/arch/auto/CppGuessTest/CppGuessTest.bs 644
# "/home/travis/perl5/perlbrew/perls/5.24/bin/perl" "/home/travis/perl5/perlbrew/perls/5.24/lib/5.24.0/ExtUtils/xsubpp"  -typemap '/home/travis/perl5/perlbrew/perls/5.24/lib/5.24.0/ExtUtils/typemap' -typemap '/home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker/typemap'  CppGuessTest.xs > CppGuessTest.xsc
# mv CppGuessTest.xsc CppGuessTest.c
# cc -c   -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -xc++  -O2   -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -fPIC "-I/home/travis/perl5/perlbrew/perls/5.24/lib/5.24.0/x86_64-linux/CORE"   CppGuessTest.c
# rm -f blib/arch/auto/CppGuessTest/CppGuessTest.so
# cc  -shared -O2 -L/usr/local/lib -fstack-protector -o blib/arch/auto/CppGuessTest/CppGuessTest.so -lstdc++  CppGuessTest.o  \
# 	      \
# 	  
# chmod 755 blib/arch/auto/CppGuessTest/CppGuessTest.so
# make[1]: Leaving directory `/home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker'
# ========================================
# make test output
# ========================================
# make[1]: Entering directory `/home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker'
# "/home/travis/perl5/perlbrew/perls/5.24/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- CppGuessTest.bs blib/arch/auto/CppGuessTest/CppGuessTest.bs 644
# PERL_DL_NONLAZY=1 "/home/travis/perl5/perlbrew/perls/5.24/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# 
# #   Failed test 'use CppGuessTest;'
# #   at t/001_load.t line 6.
# #     Tried to use 'CppGuessTest'.
# #     Error:  Can't load '/home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so' for module CppGuessTest: /home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so: undefined symbol: _ZNSs4_Rep20_S_empty_rep_storageE at /home/travis/perl5/perlbrew/perls/5.24/lib/5.24.0/x86_64-linux/DynaLoader.pm line 193.
# #  at t/001_load.t line 6.
# # Compilation failed in require at t/001_load.t line 6.
# # BEGIN failed--compilation aborted at t/001_load.t line 6.
# # Looks like you failed 1 test of 1.
# t/001_load.t .. 
# Dubious, test returned 1 (wstat 256, 0x100)
# Failed 1/1 subtests 
# Can't load '/home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so' for module CppGuessTest: /home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker/blib/arch/auto/CppGuessTest/CppGuessTest.so: undefined symbol: _ZNSs4_Rep20_S_empty_rep_storageE at /home/travis/perl5/perlbrew/perls/5.24/lib/5.24.0/x86_64-linux/DynaLoader.pm line 193.
#  at t/002_base.t line 6.
# Compilation failed in require at t/002_base.t line 6.
# BEGIN failed--compilation aborted at t/002_base.t line 6.
# # Looks like your test exited with 255 before it could output anything.
# t/002_base.t .. 
# Dubious, test returned 255 (wstat 65280, 0xff00)
# Failed 2/2 subtests 
# 
# Test Summary Report
# -------------------
# t/001_load.t (Wstat: 256 Tests: 1 Failed: 1)
#   Failed test:  1
#   Non-zero exit status: 1
# t/002_base.t (Wstat: 65280 Tests: 0 Failed: 0)
#   Non-zero exit status: 255
#   Parse errors: Bad plan.  You planned 2 tests but ran 0.
# Files=2, Tests=1,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.03 cusr  0.00 csys =  0.06 CPU)
# Result: FAIL
# Failed 2/2 test programs. 1/1 subtests failed.
# make[1]: *** [test_dynamic] Error 255
# make[1]: Leaving directory `/home/travis/.cpanm/work/1484252832.9493/ExtUtils-CppGuess-0.11/t/makemaker'
# ========================================
# Looks like you failed 1 test of 1.
                             
t/011_makemaker.t ..... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests 

Test Summary Report
-------------------
t/011_makemaker.t   (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=3, Tests=4,  3 wallclock secs ( 0.02 usr  0.01 sys +  1.74 cusr  0.36 csys =  2.13 CPU)
Result: FAIL
Failed 1/3 test programs. 1/4 subtests failed.
make: *** [test_dynamic] Error 1
FAIL
! Installing ExtUtils::CppGuess failed. See /home/travis/.cpanm/work/1484252832.9493/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'ExtUtils::CppGuess' is not installed
! Bailing out the installation for Inline-CPP-0.74.

@daoswald
Copy link
Owner

daoswald commented Jan 12, 2017 via email

@wbraswell
Copy link
Contributor Author

Okay I will go down both paths you have suggested.

@daoswald
Copy link
Owner

I wanted to confirm. Is this bug report in the correct place? It looks to me the issue is with ExtUtils::CppGuess (which I also maintain). However, I fired up a Win7 VirtualBox guest (my only available Windows environment) and installed both EU::MM and Inline::CPP successfully.

@wbraswell
Copy link
Contributor Author

Yes, I believe this is a bug in ExtUtils::CppGuess, I could not find a repo to file an issue for EU::CG so I filed the issue in this repo instead.
This issue is easy to miss if you run cpanm -n because it will skip all tests and the error will not be shown. I do still receive this error in a fresh install of Ubuntu Linux when I run cpanm with all tests enabled, so unfortunately the issue has not fixed itself over time. I do not have Windows (only Linux), so I can't speak to that aspect of the issue.
Is there anything I can do to help?

@mohawk2
Copy link
Collaborator

mohawk2 commented Sep 21, 2018

The repo for EU::CppGuess is at https://github.com/tsee/extutils-cppguess . I am also co-maint on it, and the most recent releaser, so it is still under slightly active maintenance. My intent in due course will be to make EU::CppG data-driven rather than an if-ladder, and to pull in all the detection stuff that's currently also in I::CPP so that everything is in one place. Contributions are of course welcome.

@wbraswell
Copy link
Contributor Author

@mohawk2
Does your comment relate to the solution proposed by @daoswald in the comment above?

"The best immediate solution is to modify Inline::CPP so that the ExtUtils::CPPGuess module becomes a "recommends" rather than "requires", and so that Makefile.PL is able to recover gracefully in its absence. The right way to do this is to modify the meta produced by Makefile.PL, and also to modify the modules bundled into inc/ so that they have better fall-back support.

Doing so will not be difficult, but will probably have to wait until I get back from vacation in a week or so. I'll try to prioritize it as my non-$work time permits sometime soon after I return."

@mohawk2
Copy link
Collaborator

mohawk2 commented Sep 25, 2018

Yes it does. I cannot bring myself to believe it is a good idea that Inline::CPP and EU:CppG independently do C++ compiler detection, slightly differently.

@daoswald
Copy link
Owner

daoswald commented Sep 26, 2018 via email

@mohawk2
Copy link
Collaborator

mohawk2 commented Sep 26, 2018

Ideas evolve! Now the pressure is on me to actually follow through with this :-)

@mohawk2
Copy link
Collaborator

mohawk2 commented Mar 25, 2019

Closing this, since 0.13+ should fix this or at least provide more info. If it is in fact not fixed, please re-open and provide the info that the new, more verbose tests provide!

@mohawk2 mohawk2 closed this as completed Mar 25, 2019
@wbraswell
Copy link
Contributor Author

@galactus6x
Can you please check now if you are able to install the latest version of ExtUtils::CppGuess on your computer?
$ cpanm -v ExtUtils::CppGuess

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants