Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Tk::TableMatrix won't build on Strawberry 5.26.0

by aplonis (Pilgrim)
on Jul 21, 2017 at 13:17 UTC ( [id://1195707]=perlquestion: print w/replies, xml ) Need Help??

aplonis has asked for the wisdom of the Perl Monks concerning the following question:

Running Strawberry version 5.26.0 on Win 10 Pro. And, alas, Tk::TableMatrix will not build. I get this error...

Checking dependencies from MYMETA.json ... Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.24) Checking if you have Tk 800.022 ... Yes (804.033) Building and testing Tk-TableMatrix-1.23 cp TableMatrix.pm blib\lib\Tk\TableMatrix.pm AutoSplitting blib\lib\Tk\TableMatrix.pm (blib\lib\auto\Tk\TableMatrix +) cp TableMatrix/Spreadsheet.pm blib\lib\Tk\TableMatrix\Spreadsheet.pm cp TableMatrix/SpreadsheetHideRows.pm blib\lib\Tk\TableMatrix\Spreadsh +eetHideRows.pm cd pTk && gmake gmake[1]: Entering directory 'C:/Users/gan/.cpanm/work/1500635987.1034 +8/Tk-TableMatrix-1.23/pTk' gmake[1]: *** No rule to make target '..\blib\arch\Tk\pTk\.exists', ne +eded by 'config'. Stop. gmake[1]: Leaving directory 'C:/Users/gan/.cpanm/work/1500635987.10348 +/Tk-TableMatrix-1.23/pTk' gmake: *** [Makefile:1171: pTk/libpTk.a] Error 2 -> FAIL Installing Tk::TableMatrix failed. See C:\Users\gan\.cpanm\wor +k\1500635987.10348\build.log for details. Retry with --force to force + install it.

And --force also failed. Anyone know how to work through this?

Replies are listed 'Best First'.
Re: Tk::TableMatrix won't build on Strawberry 5.26.0
by syphilis (Archbishop) on Jul 21, 2017 at 14:15 UTC
    Anyone know how to work through this?

    Not yet, but I see the same and it looks to me that ExtUtils::MakeMaker is not playing nicely with gmake.
    Strawberry 5.26.0 is the first Strawberry Perl to use 'gmake'. Earlier versions use 'dmake', and there's no problem installing Tk::TableMatrix on Strawberry 5.24.0.

    My guess is that it's EU::MM (not gmake) that's causing the problem. But it's getting late over here, and some bastard has been drinking my whisky, so *I* won't be able to contribute much else until tomorrow.

    Another possibility is that Tk::TableMatrix (which hasn't been updated in 10 years) is suffering some form of bitrot that has only come to the fore now that Strawberry uses gmake. (But I'm still backing that EU::MM is the culprit.)

    Cheers,
    Rob

      My guess is that it's EU::MM (not gmake) that's causing the problem.

      I doubt it :)

      You can't up and switch out make for dmake for gmake for ... and not expect problems from everything, esp a Tk-TableMatrix-1.23/Makefile.PL from 2006

      This can't have been a surprise for strawberryperl

        This can't have been a surprise for strawberryperl

        Yes, I don't think anyone's sitting around thinking "I can't believe this has happened".

        Cheers,
        Rob
Re: Tk::TableMatrix won't build on Strawberry 5.26.0
by syphilis (Archbishop) on Jul 22, 2017 at 00:54 UTC
    Anyone know how to work through this?

    As an interim solution:

    1) Hide Strawberry's fake 'dmake' (strawberry/c/bin/dmake.exe) and make sure you have a functioning 'dmake.exe' in your path:
    set PATH=%PATH%;C:\path\to_dmake
    2) cd to the Tk-TableMatrix-1.23 source directory (which you'll find in your cpan build directory).

    3) Run:
    perl Makefile.PL MAKE=dmake dmake test dmake install
    Then reinstate Strawberry's fake 'dmake' if you so wish.

    Cheers,
    Rob

      Okay, tried that. Could not get past first line of step 3. These are the errors...

      For a dmake.exe I unzipped a source for Strawberry Perl 5.24.2.1, since somebody said TableMatrix built okay for 5.24. I then renamed the fake original as _dmake.exe and copied in the new dmake.exe to the same directory.

      C:\Strawberry\cpan\build\Tk-TableMatrix-1.23-0>perl MakeFile.PL MAKE=d +make ### Note: 'Building Outside of Tk itself' Messages are Expected Here # +### PPM for perl5.026000 Test Compiling config/signedchar.c gcc: error: config/signedchar.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compile/Run config/unsigned.c gcc: error: config/unsigned.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compiling config/Ksprintf.c gcc: error: config/Ksprintf.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compiling -DSPRINTF_RETURN_CHAR config/Ksprintf.c gcc: error: config/Ksprintf.c: No such file or directory gcc: fatal error: no input files compilation terminated. C:/Strawberry/cpan/build/Tk-TableMatrix-1.23-0 does not start with C:/ +Strawberry/perl/site/lib i.e. building outside Tk itself C:/Strawberry/cpan/build/Tk-TableMatrix-1.23-0/pTk does not start with + C:/Strawberry/perl/site/lib i.e. building outside Tk itself Generating Dependencies for MSWin32, win_arch=MSWin32 Test Compiling config/Hstrtoul.c gcc: error: config/Hstrtoul.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compiling config/Hstrdup.c gcc: error: config/Hstrdup.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compiling config/Hstrcasecmp.c gcc: error: config/Hstrcasecmp.c: No such file or directory gcc: fatal error: no input files compilation terminated. Finding dependencies for tkTable.c Finding dependencies for tkTableCell.c Finding dependencies for tkTableCellSort.c Finding dependencies for tkTableCmds.c Finding dependencies for tkTableEdit.c Finding dependencies for tkTableTag.c Finding dependencies for tkTableUtil.c Finding dependencies for tkTableWin.c Finding dependencies for TableMatrix.xs C:\Strawberry\cpan\build\Tk-TableMatrix-1.23-0>
        These are the errors...

        Yes, that's the same as I get - but, as Anonymous Monk has intimated, you just need to run the remaining commands:
        dmake dmake test dmake install
        (It's not really necessary to run 'dmake' ahead of 'dmake test' - hence I generally leave out that step.)

        Those "error" messages are just part of some configuration testing being done prior to generating the Makefile.
        I think their aim is to determine whether Tk::TableMatrix is being built as part of Tk - which it isn't.

        Cheers,
        Rob
        what happens when you run 'dmake'?
Re: Tk::TableMatrix won't build on Strawberry 5.26.0
by thanos1983 (Parson) on Jul 21, 2017 at 13:23 UTC

    Hello aplonis,

    What does the FAIL Installing Tk::TableMatrix failed. See C:\Users\gan\.cpanm\work\1500635987.10348\build.log says?

    Looking forward to your reply, BR.

    Seeking for Perl wisdom...on the process of learning...not there...yet!

      The error listed was the tail end (I assume the relevant portion) of the file build.log but here below I'll paste in the whole thing.

      cpanm (App::cpanminus) 1.7043 on perl 5.026000 built for MSWin32-x64-m +ulti-thread Work directory is C:\Users\gan/.cpanm/work/1500635987.10348 You have make C:\Strawberry\c\bin\gmake.exe You have LWP 6.26 Falling back to Archive::Tar 2.26 Searching Tk::TableMatrix () on cpanmetadb ... --> Working on Tk::TableMatrix Fetching http://www.cpan.org/authors/id/C/CE/CERNEY/Tk-TableMatrix-1.2 +3.tar.gz -> OK Unpacking Tk-TableMatrix-1.23.tar.gz Entering Tk-TableMatrix-1.23 META.yml/json not found. Creating skeleton for it. Configuring Tk-TableMatrix-1.23 Running Makefile.PL ### Note: 'Building Outside of Tk itself' Messages are Expected Here # +### PPM for perl5.026000 Test Compiling config/signedchar.c C:\Strawberry\perl\bin\perl.exe is installed in C:\STRAWB~1\perl\lib o +kay gcc: error: config/signedchar.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compile/Run config/unsigned.c gcc: error: config/unsigned.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compiling config/Ksprintf.c gcc: error: config/Ksprintf.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compiling -DSPRINTF_RETURN_CHAR config/Ksprintf.c gcc: error: config/Ksprintf.c: No such file or directory gcc: fatal error: no input files compilation terminated. C:/Users/gan/.cpanm/work/1500635987.10348/Tk-TableMatrix-1.23 does not + start with C:/Strawberry/perl/site/lib i.e. building outside Tk itself C:/Users/gan/.cpanm/work/1500635987.10348/Tk-TableMatrix-1.23/pTk does + not start with C:/Strawberry/perl/site/lib i.e. building outside Tk itself Generating Dependencies for MSWin32, win_arch=MSWin32 Test Compiling config/Hstrtoul.c gcc: error: config/Hstrtoul.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compiling config/Hstrdup.c gcc: error: config/Hstrdup.c: No such file or directory gcc: fatal error: no input files compilation terminated. Test Compiling config/Hstrcasecmp.c gcc: error: config/Hstrcasecmp.c: No such file or directory gcc: fatal error: no input files compilation terminated. Extracting mm.h Extracting tkTable.c Extracting tkTable.h Extracting tkTableCell.c Extracting tkTableCellSort.c Extracting tkTableCmds.c Extracting tkTableEdit.c Extracting tkTableTag.c Extracting tkTableUtil.c Extracting tkTableWin.c Extracting tkTableversion.h Extracting version.h Finding dependencies for tkTable.c Finding dependencies for tkTableCell.c Finding dependencies for tkTableCellSort.c Finding dependencies for tkTableCmds.c Finding dependencies for tkTableEdit.c Finding dependencies for tkTableTag.c Finding dependencies for tkTableUtil.c Finding dependencies for tkTableWin.c Writing MYMETA.yml and MYMETA.json Writing MYMETA.yml and MYMETA.json Finding dependencies for TableMatrix.xs Generating a gmake-style Makefile Writing Makefile for Tk::TableMatrix Writing MYMETA.yml and MYMETA.json -> OK Checking dependencies from MYMETA.json ... Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.24) Checking if you have Tk 800.022 ... Yes (804.033) Building and testing Tk-TableMatrix-1.23 cp TableMatrix.pm blib\lib\Tk\TableMatrix.pm AutoSplitting blib\lib\Tk\TableMatrix.pm (blib\lib\auto\Tk\TableMatrix +) cp TableMatrix/Spreadsheet.pm blib\lib\Tk\TableMatrix\Spreadsheet.pm cp TableMatrix/SpreadsheetHideRows.pm blib\lib\Tk\TableMatrix\Spreadsh +eetHideRows.pm cd pTk && gmake gmake[1]: Entering directory 'C:/Users/gan/.cpanm/work/1500635987.1034 +8/Tk-TableMatrix-1.23/pTk' gmake[1]: *** No rule to make target '..\blib\arch\Tk\pTk\.exists', ne +eded by 'config'. Stop. gmake[1]: Leaving directory 'C:/Users/gan/.cpanm/work/1500635987.10348 +/Tk-TableMatrix-1.23/pTk' gmake: *** [Makefile:1171: pTk/libpTk.a] Error 2 -> FAIL Installing Tk::TableMatrix failed. See C:\Users\gan\.cpanm\wor +k\1500635987.10348\build.log for details. Retry with --force to force + install it.

        Just an FYI, a few things to check when trouble shooting module installtions:

        Hello aplonis,

        I think the same, what does the file contains? There should be a complete log or an error indication in the file. Copy paste the content of the file.

        By the way I just tried to install the module for experimentation purposes and although that I am running on Linux I had some problems. I first had to install Tk and then I manage to install the second module. Give it a try maybe it will work for you as well.

        Looking forward to your reply, BR.

        Seeking for Perl wisdom...on the process of learning...not there...yet!
Failure to cpanm PP on portable Strawberry Perl 24
by aplonis (Pilgrim) on Jul 23, 2017 at 16:56 UTC

    Seeking a workaround for the failure of cpanm to install Tk::TableMatrix in Starwberry Perl v26, I thought to maybe try it out in a portable installation of Strawberrry Perl 24, and that worked. So, finding success, I next went to install also the module PP, which promply failed.

    The failure occurs here ...

    A:\PP>cpanm pp --> Working on pp Fetching http://www.cpan.org/authors/id/R/RS/RSCHUPP/PAR-Packer-1.037. +tar.gz ... OK Configuring PAR-Packer-1.037 ... OK ==> Found dependencies: Module::ScanDeps, Getopt::ArgvFile --> Working on Module::ScanDeps Fetching http://www.cpan.org/authors/id/R/RS/RSCHUPP/Module-ScanDeps-1 +.24.tar.gz ... OK Configuring Module-ScanDeps-1.24 ... OK Building and testing Module-ScanDeps-1.24 ... OK Successfully installed Module-ScanDeps-1.24 --> Working on Getopt::ArgvFile Fetching http://www.cpan.org/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile- +1.11.tar.gz ... OK Configuring Getopt-ArgvFile-1.11 ... OK Building and testing Getopt-ArgvFile-1.11 ... OK Successfully installed Getopt-ArgvFile-1.11 Building and testing PAR-Packer-1.037 ...

    It fails with the pop-up herewith included. The pop-up occures six times in a row, like that over and over.

    The pop-up says...

    The procedure entry point _ZdlPvy could not be located in the dynamic link library C:\Strawberry\perl\bin\perl526.dll

    Just to be sure there was no confusion with cpanm from my installed Strawberry on the c: drive, I tried it again like below, (first insuring that my prior installs had really taken)...

    ---------------------------------------------- Welcome to Strawberry Perl Portable Edition! * URL - http://www.strawberryperl.com/ * see README.TXT for more info ---------------------------------------------- Perl executable: A:\PP\perl\bin\perl.exe Perl version : 5.24.2 / MSWin32-x64-multi-thread A:\PP>A:\PP\perl\bin\perl.exe -e "use Tk"; A:\PP>A:\PP\perl\bin\perl.exe -e "use Tk::TableMatrix"; A:\PP>A:\PP\perl\bin\cpanm.exe PP 'A:\PP\perl\bin\cpanm.exe' is not recognized as an internal or externa +l command, operable program or batch file. A:\PP>A:\PP\perl\bin\cpanm PP ! Finding PP on cpanmetadb failed. --> Working on PP Fetching http://backpan.perl.org/authors/id/L/LU/LUKKA/PDL-PP-0.010.ta +r.gz ... OK Configuring PDL-PP-0.010 ... N/A ! Configure failed for PDL-PP-0.010. See A:\PP\data\.cpanm\work\150082 +8689.4884\build.log for details. A:\PP>A:\PP\perl\bin\cpanm PAR::Packer --> Working on PAR::Packer Fetching http://www.cpan.org/authors/id/R/RS/RSCHUPP/PAR-Packer-1.037. +tar.gz ... OK Configuring PAR-Packer-1.037 ... OK Building and testing PAR-Packer-1.037 ...

    ...but results were as before.

      Seeking a workaround for the failure of cpanm to install Tk::TableMatrix in Starwberry Perl v26, I thought to maybe try it out in a portable installation of Strawberrry Perl 24, and that worked. So, finding success, I next went to install also the module PP, which promply failed. ... The procedure entry point _ZdlPvy could not be located in the dynamic link library C:\Strawberry\perl\bin\perl526.dll

      You are mixing at least two perl versions. Clean up $ENV{PATH}, build directories, and Registry. Avoid having more than one Perl installed. Always build with the target perl. Perl does not guarantee binary compatibility between different versions.

      And by the way: Please stay in the original thread.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
      The procedure entry point _ZdlPvy could not be located in the dynamic link library C:\Strawberry\perl\bin\perl526.dll

      This is indicates that an attempt to load perl526.dll is being made. But that's the wrong dll - perl5.24.x needs to load perl524.dll.
      This can be addressed by ensuring that the location of perl-5.24 appears before the location of perl-5.26 in the path.
      But you'll also want to ensure that the correct compiler is being used. For strawberry 5.24 gcc --version should indicate version 4.9.2, while for strawberry 5.26, gcc --version should indicate version 7.1.0.
      If this is not the case it, too, can be fixed by fiddling with the PATH.

      It's actually fairly easy to use different versions of Strawberry Perl on the one machine. You just make sure that you install only the 'portable' builds, and that you start the perl of your choice by double-clicking on 'portableshell.bat' (which is in the top level Strawberry Perl directory).

      Incidentally, cpanm is a batch file (.bat) not a .exe.

      Cheers,
      Rob
Re: Tk::TableMatrix won't build on Strawberry 5.26.0
by stryk (Acolyte) on Oct 11, 2020 at 00:55 UTC
    The only way I could get Tk::TableMatrix and Tk::TableMatrix::Spreadsheet to build on Win10 Strawberry Perl 5.30.1 was to download the 'portable edition' .zip of an old version of strawberry (5.19 i think it was). From inside the old version .zip, take .\c\bin\dmake.exe and the folder .\c\bin\startup\* and copy+overwrite those to the local .\c\bin\ of your current Strawberry install.

    After that, open a portable shell with the .bat from your current Strawberry install, and do a 'cpanm --look Tk::TableMatrix' to download the package from CPAN and auto cd to correct dir. From here do:

    perl Makefile.PL MAKE=dmake
    dmake test
    dmake install

    This is the only thing that ever compiled and passed testing for me after scouring the 'net and trying various other things that never worked.
Re: Tk::TableMatrix won't build on Strawberry 5.26.0
by Anonymous Monk on Jan 14, 2019 at 13:22 UTC

    Hello!

    I found a strange, but still a solution for compiling the Tk-TableMatrix for the 5.28.1.1.

    The thing is that make didn't created needed folders for correct compilation for some reason.

    Look at this

     gmake[1]: *** No rule to make target '..\blib\arch\Tk\pTk\.exists', needed by 'config'.  Stop.

    It had given me a hint, that this file doesn't exist.

    I've tried following:

    cd to .\blib\arch create Tk folder create Tk\pTk folder create Tk\pTk\compat folder create Tk\X11 folder create empty '.exists' files in Tk\pTk, Tk\X11 and Tk\pTk\compat folders

    This helped me to avoid gmake errors.

    Also I patched the TableMatrix.xs file like described in https://www.perlmonks.org/?node_id=713034

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1195707]
Approved by marto
Front-paged by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2024-04-25 10:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found