in reply to Re^6: Installing File::Repl on a Mac possible?
in thread Installing File::Repl on a Mac possible?

But how did this module pass the tests for darwin machines?

Not sure - but it seems there's another bug in File::Repl in that the Makefile.PL fails to specify File::HomeDir as a prerequisite module.

When I try to build File::Repl on Linux, I find that it also tries (and fails) to build and install Win32::API.
But that's not what causes the build to fail - the failure I get (during the "make test" phase) on Linux is:
Running make test PERL_DL_NONLAZY=1 "/home/sisyphus/perl528-f128/bin/perl" "-Iblib/lib" +"-Iblib/arch" test.pl Can't locate File/HomeDir.pm in @INC (you may need to install the File +::HomeDir module) (@INC contains: blib/lib blib/arch /home/sisyphus/p +erl528-f128/lib/site_perl/5.28.0/x86_64-linux-quadmath /home/sisyphus +/perl528-f128/lib/site_perl/5.28.0 /home/sisyphus/perl528-f128/lib/5. +28.0/x86_64-linux-quadmath /home/sisyphus/perl528-f128/lib/5.28.0 .) +at test.pl line 9. BEGIN failed--compilation aborted at test.pl line 9. Makefile:847: recipe for target 'test_dynamic' failed make: *** [test_dynamic] Error 2
I can only assume that the smokers already have File::HomeDir installed. Anyway, if that's the error that's killing you're build, you can get past it by first running "cpan -i File::HomeDir".

Having done all that, I still find on Linux that, although all tests then pass, cpan steadfastly refuses to install the module because of the missing Win32::API module.
Even with force, cpan refuses to install the module - a behaviour that I find offensively annoying.
I don't know how the smokers get around that - maybe they don't have to. Maybe they're just reporting that "make test" was successful (which it was, despite the missing prerequisite).
The fact that the module can't be installed might not bother them as it's beyond their terms of reference ... or something. Dunno.

Anyway, if having reached the stage that cpan refuses to install the module simply because Win32::API was not installed, you should at least be able to cd to that File::Repl build directory and successfully run "make install" (or "sudo make install" if that's applicable).

Cheers,
Rob

Replies are listed 'Best First'.
Re^8: Installing File::Repl on a Mac possible?
by nysus (Parson) on Sep 10, 2018 at 12:43 UTC

    Ah, ok, I'm clearly deficient in my knowledge of how smoke testing works. I assumed the module got installed on the smoke testers' machines. I'll have to bone up on all that.

    $PM = "Perl Monk's";
    $MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest";
    $nysus = $PM . ' ' . $MCF;
    Click here if you love Perl Monks

      I assumed the module got installed on the smoke testers' machines.

      Yes - it would be handy if someone could clarify this.
      I think the problem in getting File::Repl to actually install on Linux was specific to the cpan utility, so another thing to consider is that perhaps the smokers aren't using that utility at all.

      Cheers,
      Rob

        As far as I can tell, anything sent to cpan testers is generated by specially configuring cpan,cpanp or cpanm to do so. This happens when you then go and install a module using your tool of choice. People can also choose to smoke test modules, configuring cpan or cpanp to go ahead and just automatically download and test modules, reporting as it goes.

        Update: So the reports for this look weird, if I get the time later I'll take a look later if I don't forget.

        Interesting, so I set up cpan as per http://wiki.cpantesters.org/wiki/QuickStart, and did test File::Repl, (I actually ran this a couple of times to play around with it). Here's an extract of what happened, firstly, Win32::API is unsurprisingly unsupported under Linux :)

        cpan[1]> test File::Repl ...some stuff redacted... Configuring D/DR/DROBERTS/File-Repl-2.3.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Warning: prerequisite Win32::API 0 not found. Generating a Unix-style Makefile Writing Makefile for File::Repl Writing MYMETA.yml and MYMETA.json (/home/marto/perl5/perlbrew/perls/perl-5.26.1/bin/perl Makefile.PL exi +ted with 0) CPAN::Reporter: Makefile.PL result is 'pass', No errors. DROBERTS/File-Repl-2.3.tar.gz /home/marto/perl5/perlbrew/perls/perl-5.26.1/bin/perl Makefile.PL -- + OK Running make for D/DR/DROBERTS/File-Repl-2.3.tar.gz ---- Unsatisfied dependencies detected during ---- ---- DROBERTS/File-Repl-2.3.tar.gz ---- Win32::API [requires] Running test for module 'Win32::API' Checksum for /home/marto/.cpan/sources/authors/id/B/BU/BULKDD/Win32/Wi +n32-API-0.84.tar.gz ok Configuring B/BU/BULKDD/Win32/Win32-API-0.84.tar.gz with Makefile.PL OS unsupported (/home/marto/perl5/perlbrew/perls/perl-5.26.1/bin/perl Makefile.PL exi +ted with 65280) CPAN::Reporter: Makefile.PL result is 'na', This platform is not suppo +rted. CPAN::Reporter: preparing a CPAN Testers report for Win32-API-0.84 Do you want to review or edit the test report? (yes/no) [no] no Do you want to send the report? (yes/no) [no] no

        Obviously I didn't want to pollute the test matrix for this module, moving on....

        Running make for D/DR/DROBERTS/File-Repl-2.3.tar.gz Warning: Prerequisite 'Win32::API => 0' for 'DROBERTS/File-Repl-2.3.ta +r.gz' failed when processing 'BULKDD/Win32/Win32-API-0.84.tar.gz' wit +h 'writemakefile => NO '/home/marto/perl5/perlbrew/perls/perl-5.26.1/ +bin/perl Makefile.PL' returned status 65280'. Continuing, but chances + to succeed are limited. ... lots of stuff redacted ... all tests completed OK (/usr/bin/make test exited with 0) CPAN::Reporter: Test result is 'pass', 'make test' no errors. CPAN::Reporter: preparing a CPAN Testers report for File-Repl-2.3 CPAN::Reporter: this appears to be a duplicate report for the test pha +se: PASS File-Repl-2.3 x86_64-linux 4.5.7-std-3 Test report will not be sent. DROBERTS/File-Repl-2.3.tar.gz Tests succeeded but one dependency not OK (Win32::API) DROBERTS/File-Repl-2.3.tar.gz [dependencies] -- NA Failed during this command: BULKDD/Win32/Win32-API-0.84.tar.gz : writemakefile NO '/hom +e/marto/perl5/perlbrew/perls/perl-5.26.1/bin/perl Makefile.PL' return +ed status 65280 DROBERTS/File-Repl-2.3.tar.gz : make_test NO one depen +dency not OK (Win32::API)

        Ignoring the fact that I'd been playing around with this, each run CPAN::Reporter marks File::Repl as a 'Pass', since it's test suite passed. The test suite won't drag in Win32::API (https://metacpan.org/source/DROBERTS/File-Repl-2.3/Repl.pm#L157). However, actually running an install for the module fails, as expected.

        So based purely on the bare minimum config as per the wiki linked above, it gets a 'pass'. Delving deeper into the cpantesters/smoking config is on my to do list.

        I've made minimal changes to the Makefile.PL to get it working. If you have time could you please test it on Windows and let me know if it works? I'll submit a patch.