Skip Menu |

This queue is for tickets about the Perl-Dist-Strawberry CPAN distribution.

Report information
The Basics
Id: 131158
Status: open
Priority: 0/
Queue: Perl-Dist-Strawberry

People
Owner: Nobody in particular
Requestors: matt [...] triplesqueeze.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: CPAN fails, possibly due to a gmake command line issue
Date: Mon, 9 Dec 2019 10:16:52 -0800
To: Strawberry Perl Distribution <bug-Perl-Dist-Strawberry [...] rt.cpan.org>
From: Matthew Kidd <matt [...] triplesqueeze.com>
I can't get CPAN to install any packages on Windows 7 (64-bit) using the latest distribution: C:\Users\matt\Documents> perl -v This is perl 5, version 30, subversion 1 (v5.30.1) built for MSWin32-x64-multi-thread Here is an example when trying to install the POSIX::strptime package (a dependency of Image::ExifTool package that I want to install): C:\Users\matt\Documents> cpan POSIX::strptime Loading internal logger. Log::Log4perl recommended for better logging CPAN: CPAN::SQLite loaded ok (v0.217) Database was generated on Mon, 09 Dec 2019 16:38:10 GMT Running install for module 'POSIX::strptime' CPAN: LWP::UserAgent loaded ok (v6.42) Fetching with LWP: http://cpan.strawberryperl.com/authors/id/G/GO/GOZER/POSIX-strptime-0.13.tar.gz CPAN: YAML::XS loaded ok (v0.80) CPAN: Digest::SHA loaded ok (v6.02) Fetching with LWP: http://cpan.strawberryperl.com/authors/id/G/GO/GOZER/CHECKSUMS CPAN: Compress::Zlib loaded ok (v2.09) Checksum for C:\Perl64\cpan\sources\authors\id\G\GO\GOZER\POSIX-strptime-0.13.tar.gz ok CPAN: Archive::Tar loaded ok (v2.32) CPAN: CPAN::Meta::Requirements loaded ok (v2.140) CPAN: Parse::CPAN::Meta loaded ok (v2.150010) CPAN: CPAN::Meta loaded ok (v2.150010) CPAN: Module::CoreList loaded ok (v5.20191120) Configuring G/GO/GOZER/POSIX-strptime-0.13.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a gmake-style Makefile Writing Makefile for POSIX::strptime Writing MYMETA.yml and MYMETA.json   GOZER/POSIX-strptime-0.13.tar.gz   C:\Perl64\perl\bin\perl.exe Makefile.PL -- OK Running make for G/GO/GOZER/POSIX-strptime-0.13.tar.gz process_begin: CreateProcess(C:\Users\matt\AppData\Loca\Temp\make5160-1.bat, C:\Users\matt\AppData\Local\Temp\make5160-1.bat, ...) failed. make (e=2): The system cannot find the file specified. gmake: *** [Makefile:386: blibdirs] Error 2   GOZER/POSIX-strptime-0.13.tar.gz   C:\Perl64\c\bin\gmake.exe -- NOT OK Stopping: 'install' failed for 'POSIX::strptime'. I've investigated this problem a bit using the SysInterals (now Microsoft) *procmon* tool. I think the CreateProcess() call flagged in red fails because the bat file does not exist at this point. The temporary directory is writeable (as expected) and *procmon* shows *gmake.exe* creating a *make####-1.bat* file but quickly deleting it, 18 ms later. Also, and rather bizarrely, I see two attempts by *gmake* to read the following file: C:\Windows\system32\cmd.exe;C:\Bin;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\ \c C:\Users\matt\AppData\Loca\Temp\make5160-1.bat This isn't a valid filename so the requests fail. The strange thing that this "filename" consists of parts of the system wide PATH environment variable (in red), "\c", and then the temporarily file (in blue). gmake seems to be doing something strange.    - Matthew
What I see is this:
​d:\strawberry64>cpan POSIX::strptime

Loading internal logger. Log::Log4perl recommended for better logging
CPAN: CPAN::SQLite loaded ok (v0.217)
Database was generated on Mon, 09 Dec 2019 18:51:22 GMT
Running install for module 'POSIX::strptime'
CPAN: LWP::UserAgent loaded ok (v6.42)
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/G/GO/GOZER/POSIX-strptime-0.13.tar.gz
CPAN: YAML::XS loaded ok (v0.80)
CPAN: Digest::SHA loaded ok (v6.02)
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/G/GO/GOZER/CHECKSUMS
CPAN: Compress::Zlib loaded ok (v2.09)
Checksum for D:\strawberry64\cpan\sources\authors\id\G\GO\GOZER\POSIX-strptime-0.13.tar.gz ok
CPAN: Archive::Tar loaded ok (v2.32)
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20191120)
Configuring G/GO/GOZER/POSIX-strptime-0.13.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a gmake-style Makefile
Writing Makefile for POSIX::strptime
Writing MYMETA.yml and MYMETA.json
  GOZER/POSIX-strptime-0.13.tar.gz
  D:\strawberry64\perl\bin\perl.exe Makefile.PL -- OK
Running make for G/GO/GOZER/POSIX-strptime-0.13.tar.gz
cp lib/POSIX/strptime.pm blib\lib\POSIX\strptime.pm
Running Mkbootstrap for strptime ()
"D:\strawberry64\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "strptime.bs"
"D:\strawberry64\perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- strptime.bs blib\arch\auto\POSIX\strptime\strptime.bs 644
"D:\strawberry64\perl\bin\perl.exe" "D:\strawberry64\perl\lib\ExtUtils/xsubpp"  -typemap D:\strawberry64\perl\lib\ExtUtils\typemap  strptime.xs > strptime.xsc
Please specify prototyping behavior for strptime.xs (see perlxs manual)
"D:\strawberry64\perl\bin\perl.exe" -MExtUtils::Command -e mv -- strptime.xsc strptime.c
gcc -c  -I. -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2   -DVERSION=\"0.13\" -DXS_VERSION=\"0.13\"  "-ID:\strawberry64\perl\lib\CORE"   strptime.c
strptime.xs: In function 'XS_POSIX__strptime_strptime':
strptime.xs:40:6: warning: implicit declaration of function 'strptime'; did you mean 'strftime'? [-Wimplicit-function-declaration]
      strptime(SvPV_nolen(input), SvPV_nolen(format), &tm_t);
      ^~~~~~~~
      strftime
"D:\strawberry64\perl\bin\perl.exe" -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=>\"POSIX::strptime\", 'DLBASE' => 'strptime', 'DL_FUNCS' => {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
g++.exe strptime.def -o blib\arch\auto\POSIX\strptime\strptime.xs.dll -mdll -s -L"D:\strawberry64\perl\lib\CORE" -L"D:\strawberry64\c\lib" strptime.o   "D:\strawberry64\perl\lib\CORE\libperl530.a" -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 -Wl,--enable-auto-image-base
D:/strawberry64/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: strptime.o:strptime.c:(.text+0xdd): undefined reference to `strptime'
collect2.exe: error: ld returned 1 exit status
gmake: *** [Makefile:479: blib\arch\auto\POSIX\strptime\strptime.xs.dll] Error 1
  GOZER/POSIX-strptime-0.13.tar.gz
  D:\strawberry64\c\bin\gmake.exe -- NOT OK
Stopping: 'install' failed for 'POSIX::strptime'.

Which IMO means that `strptime' is not available in mingw-w64 runtime.

Subject: Re: [rt.cpan.org #131158] CPAN fails, possibly due to a gmake command line issue
Date: Mon, 9 Dec 2019 11:12:49 -0800
To: Strawberry Perl Distribution <bug-Perl-Dist-Strawberry [...] rt.cpan.org>
From: Matthew Kidd <matt [...] triplesqueeze.com>
Sure perhaps, strptime() is not available in mingw-w64 runtime. But I can't even install a "simple" package like the recommended Log::Log4perl, e.g. C:\Users\matt\Documents> cpan Log::Log4perl Loading internal logger. Log::Log4perl recommended for better logging CPAN: CPAN::SQLite loaded ok (v0.217) Database was generated on Mon, 09 Dec 2019 16:38:10 GMT Running install for module 'Log::Log4perl' CPAN: LWP::UserAgent loaded ok (v6.42) Fetching with LWP: http://cpan.strawberryperl.com/authors/id/M/MS/MSCHILLI/Log-Log4perl-1.49.tar.gz CPAN: YAML::XS loaded ok (v0.80) CPAN: Digest::SHA loaded ok (v6.02) Fetching with LWP: http://cpan.strawberryperl.com/authors/id/M/MS/MSCHILLI/CHECKSUMS CPAN: Compress::Zlib loaded ok (v2.09) Checksum for C:\Perl64\cpan\sources\authors\id\M\MS\MSCHILLI\Log-Log4perl-1.49.tar.gz ok CPAN: Archive::Tar loaded ok (v2.32) CPAN: CPAN::Meta::Requirements loaded ok (v2.140) CPAN: Parse::CPAN::Meta loaded ok (v2.150010) CPAN: CPAN::Meta loaded ok (v2.150010) CPAN: Module::CoreList loaded ok (v5.20191120) Configuring M/MS/MSCHILLI/Log-Log4perl-1.49.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a gmake-style Makefile Writing Makefile for Log::Log4perl Writing MYMETA.yml and MYMETA.json   MSCHILLI/Log-Log4perl-1.49.tar.gz   C:\Perl64\perl\bin\perl.exe Makefile.PL -- OK Running make for M/MS/MSCHILLI/Log-Log4perl-1.49.tar.gz process_begin: CreateProcess(C:\Users\matt\AppData\Local\Temp\make5996-1.bat, C:\Users\matt\AppData\Local\Temp\make5996-1.bat, ...) failed. make (e=2): The system cannot find the file specified. gmake: *** [Makefile:386: blibdirs] Error 2   MSCHILLI/Log-Log4perl-1.49.tar.gz   C:\Perl64\c\bin\gmake.exe -- NOT OK Stopping: 'install' failed for 'Log::Log4perl'. Things worked fine when I last installed Strawberry Perl (Strawberry Perl 5.24.0.1 x64bit.msi), though back then the project was using dmake rather than gmake. I could try to revert but was hoping to bring software up to date after having to rebuild on a new disk after hardware level disk corruption set in. ------------------------------------------------------------------------ Subject: [rt.cpan.org #131158] CPAN fails, possibly due to a gmake command line issue Date: Mon, 9 Dec 2019 13:54:26 -0500 From: kmx via RT <bug-Perl-Dist-Strawberry@rt.cpan.org> Reply-To: bug-Perl-Dist-Strawberry@rt.cpan.org To: matt@triplesqueeze.com <URL: https://rt.cpan.org/Ticket/Display.html?id=131158 > What I see is this: ​d:\strawberry64>cpan POSIX::strptime Loading internal logger. Log::Log4perl recommended for better logging CPAN: CPAN::SQLite loaded ok (v0.217) Database was generated on Mon, 09 Dec 2019 18:51:22 GMT Running install for module 'POSIX::strptime' CPAN: LWP::UserAgent loaded ok (v6.42) Fetching with LWP: http://cpan.strawberryperl.com/authors/id/G/GO/GOZER/POSIX-strptime-0.13.tar.gz CPAN: YAML::XS loaded ok (v0.80) CPAN: Digest::SHA loaded ok (v6.02) Fetching with LWP: http://cpan.strawberryperl.com/authors/id/G/GO/GOZER/CHECKSUMS CPAN: Compress::Zlib loaded ok (v2.09) Checksum for D:\strawberry64\cpan\sources\authors\id\G\GO\GOZER\POSIX-strptime-0.13.tar.gz ok CPAN: Archive::Tar loaded ok (v2.32) CPAN: CPAN::Meta::Requirements loaded ok (v2.140) CPAN: Parse::CPAN::Meta loaded ok (v2.150010) CPAN: CPAN::Meta loaded ok (v2.150010) CPAN: Module::CoreList loaded ok (v5.20191120) Configuring G/GO/GOZER/POSIX-strptime-0.13.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a gmake-style Makefile Writing Makefile for POSIX::strptime Writing MYMETA.yml and MYMETA.json GOZER/POSIX-strptime-0.13.tar.gz D:\strawberry64\perl\bin\perl.exe Makefile.PL -- OK Running make for G/GO/GOZER/POSIX-strptime-0.13.tar.gz cp lib/POSIX/strptime.pm blib\lib\POSIX\strptime.pm Running Mkbootstrap for strptime () "D:\strawberry64\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "strptime.bs" "D:\strawberry64\perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- strptime.bs blib\arch\auto\POSIX\strptime\strptime.bs 644 "D:\strawberry64\perl\bin\perl.exe" "D:\strawberry64\perl\lib\ExtUtils/xsubpp" -typemap D:\strawberry64\perl\lib\ExtUtils\typemap strptime.xs > strptime.xsc Please specify prototyping behavior for strptime.xs (see perlxs manual) "D:\strawberry64\perl\bin\perl.exe" -MExtUtils::Command -e mv -- strptime.xsc strptime.c gcc -c -I. -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"0.13\" -DXS_VERSION=\"0.13\" "-ID:\strawberry64\perl\lib\CORE" strptime.c strptime.xs: In function 'XS_POSIX__strptime_strptime': strptime.xs:40:6: warning: implicit declaration of function 'strptime'; did you mean 'strftime'? [-Wimplicit-function-declaration] strptime(SvPV_nolen(input), SvPV_nolen(format), &tm_t); ^~~~~~~~ strftime "D:\strawberry64\perl\bin\perl.exe" -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"POSIX::strptime\", 'DLBASE' => 'strptime', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" g++.exe strptime.def -o blib\arch\auto\POSIX\strptime\strptime.xs.dll -mdll -s -L"D:\strawberry64\perl\lib\CORE" -L"D:\strawberry64\c\lib" strptime.o "D:\strawberry64\perl\lib\CORE\libperl530.a" -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 -Wl,--enable-auto-image-base D:/strawberry64/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: strptime.o:strptime.c:(.text+0xdd): undefined reference to `strptime' collect2.exe: error: ld returned 1 exit status gmake: *** [Makefile:479: blib\arch\auto\POSIX\strptime\strptime.xs.dll] Error 1 GOZER/POSIX-strptime-0.13.tar.gz D:\strawberry64\c\bin\gmake.exe -- NOT OK Stopping: 'install' failed for 'POSIX::strptime'. Which IMO means that `strptime' is not available in mingw-w64 runtime.