beyondgrep / ack2

**ack 2 is no longer being maintained. ack 3 is the latest version.**
https://github.com/beyondgrep/ack3/
Other
1.48k stars 138 forks source link

ack requires two attempts to install on Perl 5.20.0 #466

Closed petdance closed 10 years ago

petdance commented 10 years ago

From @rjbs on Twitter "The only problem I had migrating laptop to 5.20.0 was that I had to make two attempts to install ack. 2nd attempt worked. Known?"

See https://gist.github.com/rjbs/4d506feec4dbdde5cb36

n1vux commented 10 years ago

RJBS says OSX, cpanm.

This was reported on mailing list with older Perls, on OSX and Linode, with cpan or cpanm, in Feb, March.
https://groups.google.com/forum/#!msg/ack-users/QL-ENH4P0GY/P7K3D8UB838J File::Next being present but needing upgrade seemed to be consistent theme then.

My comment at the time was i'd seen similar issues with cpan/cpanp/cpanm needing upgraded version of a prereq that didn't involve Ack or File::Next. If it's a fault in Ack or File::Next build/make files, it's sadly not unique to ours.

n1vux commented 10 years ago

Keenan's from March 22 (continuing above thread ) attached build fail log

Happened again today while loading up a brand new laptop running Ubuntu 13.10. Attaching gzipped output log showing that, although App:Ack built, tested and installed successfully, 'standalone' failed dramatically. Second time I called 'cpanm App::Ack', everything DWIMmed.

https://groups.google.com/group/ack-users/attach/7ff301c50fb7b23f/app-ack-failure-build.log.gz?part=2&authuser=0&view=1

karenetheridge commented 10 years ago

One issue behind this is that File::Next often fails to install cleanly:

Fetching http://www.cpan.org/authors/id/P/PE/PETDANCE/File-Next-1.12.tar.gz
-> OK
Unpacking File-Next-1.12.tar.gz
Entering File-Next-1.12
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.98)
Configuring File-Next-1.12
Running Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for File::Next
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.98)
Checking if you have Test::More 0.88 ... Yes (1.001002)
Checking if you have File::Spec 0 ... Yes (3.47)
Building and testing File-Next-1.12
cp Next.pm blib/lib/File/Next.pm
Manifying blib/man3/File::Next.0
PERL_DL_NONLAZY=1 /Users/ether/perl5/perlbrew/perls/20.0/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Testing File::Next 1.12, Perl 5.020000, /Users/ether/perl5/perlbrew/perls/20.0/bin/perl
t/00-load.t ....... ok
t/api.t ........... ok
t/dirs.t .......... ok
t/basic.t ......... ok
t/dot.t ........... ok
t/methods.t ....... ok
t/from_file.t ..... ok
t/pod-coverage.t .. skipped: Test::Pod::Coverage 1.04 required for testing POD

#   Failed test 'NO_PARMS'
#   at t/everything.t line 92.
# +----+----------------------+----+----------------+
# | Elt|Got                   | Elt|Expected        |
# +----+----------------------+----+----------------+
# |   0|'t/swamp/0'           |   0|'t/swamp/0'     |
# |   1|'t/swamp/a/a1'        |   1|'t/swamp/a/a1'  |
# |   2|'t/swamp/a/a2'        |   2|'t/swamp/a/a2'  |
# |   3|'t/swamp/b'           |   3|'t/swamp/b'     |
# |   4|'t/swamp/b/b1'        |   4|'t/swamp/b/b1'  |
# |   5|'t/swamp/b/b2'        |   5|'t/swamp/b/b2'  |
# |   6|'t/swamp/c/c1'        |   6|'t/swamp/c/c1'  |
# |   7|'t/swamp/c/c2'        |   7|'t/swamp/c/c2'  |
# *   8|'t/swamp/linkdir/a1'  *    |                |
# *   9|'t/swamp/linkdir/a2'  *    |                |
# |  10|'t/zero.t'            |   8|'t/zero.t'      |
# +----+----------------------+----+----------------+
# Looks like you failed 1 test of 4.
t/everything.t .... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests 
t/follow.t ........ ok
t/parms.t ......... ok
t/named-pipe.t .... ok
t/from_stdin.t .... ok
t/sort.t .......... ok
t/zero.t .......... ok
t/pod.t ........... ok

Test Summary Report
-------------------
t/everything.t  (Wstat: 256 Tests: 4 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=16, Tests=83,  1 wallclock secs ( 0.08 usr  0.04 sys +  1.04 cusr  0.16 csys =  1.32 CPU)
Result: FAIL
Failed 1/16 test programs. 1/83 subtests failed.
make: *** [test_dynamic] Error 255
-> FAIL Installing File::Next failed. See /Users/ether/.cpanm/work/1401214279.31647/build.log for details. Retry with --force to force install it.
-> FAIL Installing the dependencies failed: Module 'File::Next' is not installed
-> FAIL Bailing out the installation for ack-2.13_06.
karenetheridge commented 10 years ago

Also: http://matrix.cpantesters.org/?dist=ack+2.12

n1vux commented 10 years ago

​​T he File::Next ​ prereq​ fail ​shown above ​ is related to ​ two File::Next issues​

(Kare n has good comment there already on #16. Kent's comment is that follow.t might not be the only parallel problem. )​

​WRTO the ACK crimson matrix, it is not mostly ​this issue as Cygwin and MSwin are mostly green on http://matrix.cpantesters.org/?dist=File-Next

​ ​ , as are Darwin and Linux mostly.

Also, it's unclear how this would install clean reliably the second time as reported on this bug, but parallel could work by accident N-1 times in N, which might appear as 2nd time the charm.

-- Bill

CONNECTING ​DETAILS if needed.​

​F rom that log by Karen Etheridge, ​ I highlight 3 lines

at t/everything.t line 92.

* 8|'t/swamp/linkdir/a1' * | |

* 9|'t/swamp/linkdir/a2' * | |

​ ​ t/swamp/linkdir/ should only exist during t/follow.t .

File::Next t/follow.t has good intention of cleaning up

END { unlink( keys %links ); }

Parallel testing will hose this (as would a prior fail in follow.t .)​

hoelzro commented 10 years ago

This has been fixed in the dev branch.