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

Making Paws goes into infinite loop on Windows / Strawberry Perl #441

Open
wjens opened this issue Oct 22, 2024 · 7 comments
Open

Making Paws goes into infinite loop on Windows / Strawberry Perl #441

wjens opened this issue Oct 22, 2024 · 7 comments

Comments

@wjens
Copy link

wjens commented Oct 22, 2024

I'm using the latest version of Strawberry Perl on Windows 2019.

C:\MOD>perl -v

This is perl 5, version 40, subversion 0 (v5.40.0) built for MSWin32-x64-multi-thread

When making Paws, it gets hung up on Ref::Util::XS. I can't tell if this is a Paws problems or a Ref::Util::XS problem.

cpan> make Paws
Database was generated on Mon, 21 Oct 2024 15:07:08 GMT
Running make for module 'Paws'
Checksum for C:\STRAWB~1\cpan\sources\authors\id\J\JR\JROBINSON\Paws-0.46.tar.gz ok
Scanning cache C:\STRAWB~1\cpan\build for sizes
......................------------------------------------------------------DONE
DEL(1/27): C:\STRAWB~1\cpan\build\MIME-Lite-3.033-0
DEL(2/27): C:\STRAWB~1\cpan\build\MIME-Lite-3.033-0.yml
DEL(3/27): C:\STRAWB~1\cpan\build\Config-IniFiles-3.000003-0
DEL(4/27): C:\STRAWB~1\cpan\build\Config-IniFiles-3.000003-0.yml
DEL(5/27): C:\STRAWB~1\cpan\build\Switch-2.17-0
DEL(6/27): C:\STRAWB~1\cpan\build\Switch-2.17-0.yml
DEL(7/27): C:\STRAWB~1\cpan\build\Win32-IPC-1.11-0
DEL(8/27): C:\STRAWB~1\cpan\build\Win32-IPC-1.11-0.yml
DEL(9/27): C:\STRAWB~1\cpan\build\Crypt-Curve25519-0.07-0
DEL(10/27): C:\STRAWB~1\cpan\build\Crypt-Curve25519-0.07-0.yml
DEL(11/27): C:\STRAWB~1\cpan\build\Crypt-IDEA-1.10-0
DEL(12/27): C:\STRAWB~1\cpan\build\Crypt-IDEA-1.10-0.yml
DEL(13/27): C:\STRAWB~1\cpan\build\CryptX-0.084-0
DEL(14/27): C:\STRAWB~1\cpan\build\CryptX-0.084-0.yml
DEL(15/27): C:\STRAWB~1\cpan\build\Digest-BubbleBabble-0.02-0
DEL(16/27): C:\STRAWB~1\cpan\build\Digest-BubbleBabble-0.02-0.yml
DEL(17/27): C:\STRAWB~1\cpan\build\String-CRC32-2.100-0
DEL(18/27): C:\STRAWB~1\cpan\build\String-CRC32-2.100-0.yml
DEL(19/27): C:\STRAWB~1\cpan\build\Net-SSH-Perl-2.142-0
DEL(20/27): C:\STRAWB~1\cpan\build\Net-SSH-Perl-2.142-0.yml
DEL(21/27): C:\STRAWB~1\cpan\build\Net-SFTP-0.12-0
DEL(22/27): C:\STRAWB~1\cpan\build\Net-SFTP-0.12-0.yml
DEL(23/27): C:\STRAWB~1\cpan\build\IniConf-1.03-0
DEL(24/27): C:\STRAWB~1\cpan\build\IniConf-1.03-0.yml
DEL(25/27): C:\STRAWB~1\cpan\build\Regexp-IPv6-0.03-0
DEL(26/27): C:\STRAWB~1\cpan\build\Regexp-IPv6-0.03-0.yml
DEL(27/27): C:\STRAWB~1\cpan\build\Paws-0.46-0.yml
Configuring J/JR/JROBINSON/Paws-0.46.tar.gz with Build.PL
Creating new 'Build' script for 'Paws' version '0.46'
  JROBINSON/Paws-0.46.tar.gz
  C:\Strawberry\perl\bin\perl.exe Build.PL -- OK
Running Build for J/JR/JROBINSON/Paws-0.46.tar.gz
---- Unsatisfied dependencies detected during ----
----        JROBINSON/Paws-0.46.tar.gz        ----
    ARGV::Struct [requires]
    Browser::Open [requires,optional]
    Class::Unload [build_requires]
    Config::AWS [requires]
    Data::Compare [requires]
    DataStruct::Flat [requires]
    DateTime::Format::ISO8601 [requires]
    MooseX::Getopt [requires]
    Net::Amazon::Signature::V4 [requires]
    Test::Timer [build_requires]
    URI::Template [requires]
    URL::Encode [requires]
    URL::Encode::XS [requires]
Running make for module 'ARGV::Struct'
Checksum for C:\STRAWB~1\cpan\sources\authors\id\J\JL\JLMARTIN\ARGV-Struct-0.06.tar.gz ok
Configuring J/JL/JLMARTIN/ARGV-Struct-0.06.tar.gz with Makefile.PL
Generating a gmake-style Makefile
Writing Makefile for ARGV::Struct
Writing MYMETA.yml and MYMETA.json
  JLMARTIN/ARGV-Struct-0.06.tar.gz
  C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for J/JL/JLMARTIN/ARGV-Struct-0.06.tar.gz
cp lib/ARGV/Struct.pm blib\lib\ARGV\Struct.pm
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e cp -- bin/argvstruct blib\script\argvstruct
pl2bat.bat blib\script\argvstruct
  JLMARTIN/ARGV-Struct-0.06.tar.gz
  C:\STRAWB~1\c\bin\gmake.exe -- OK
Running test for module 'Class::Unload'
Checksum for C:\STRAWB~1\cpan\sources\authors\id\I\IL\ILMARI\Class-Unload-0.11.tar.gz ok
Configuring I/IL/ILMARI/Class-Unload-0.11.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a gmake-style Makefile
Writing Makefile for Class::Unload
Writing MYMETA.yml and MYMETA.json
  ILMARI/Class-Unload-0.11.tar.gz
  C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for I/IL/ILMARI/Class-Unload-0.11.tar.gz
cp lib/Class/Unload.pm blib\lib\Class\Unload.pm
  ILMARI/Class-Unload-0.11.tar.gz
  C:\STRAWB~1\c\bin\gmake.exe -- OK
Running make test for ILMARI/Class-Unload-0.11.tar.gz
"C:\Strawberry\perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/00-load.t .............. 1/? # Testing Class::Unload 0.11, Perl 5.040000, C:\Strawberry\perl\bin\perl.exe
t/00-load.t .............. ok
t/01-unload.t ............ ok
t/02-inheritance.t ....... ok
t/03-moose.t ............. ok
t/author-eol.t ........... skipped: these tests are for testing by the author
t/author-no-tabs.t ....... skipped: these tests are for testing by the author
t/author-pod-coverage.t .. skipped: these tests are for testing by the author
t/author-pod-syntax.t .... skipped: these tests are for testing by the author
All tests successful.
Files=8, Tests=26,  3 wallclock secs ( 0.06 usr +  0.06 sys =  0.13 CPU)
Result: PASS
Lockfile removed.
  ILMARI/Class-Unload-0.11.tar.gz
  C:\STRAWB~1\c\bin\gmake.exe test -- OK
Running make for module 'Config::AWS'
Checksum for C:\STRAWB~1\cpan\sources\authors\id\J\JJ\JJATRIA\Config-AWS-0.12.tar.gz ok
Configuring J/JJ/JJATRIA/Config-AWS-0.12.tar.gz with Build.PL
Creating new 'Build' script for 'Config-AWS' version '0.12'
  JJATRIA/Config-AWS-0.12.tar.gz
  C:\Strawberry\perl\bin\perl.exe Build.PL -- OK
Running Build for J/JJ/JJATRIA/Config-AWS-0.12.tar.gz
---- Unsatisfied dependencies detected during ----
----      JJATRIA/Config-AWS-0.12.tar.gz      ----
    Ref::Util [requires]
Running make for module 'Ref::Util'
Checksum for C:\STRAWB~1\cpan\sources\authors\id\A\AR\ARC\Ref-Util-0.204.tar.gz ok
Configuring A/AR/ARC/Ref-Util-0.204.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Warning: prerequisite Ref::Util::XS 0 not found.
Generating a gmake-style Makefile
Writing Makefile for Ref::Util
Writing MYMETA.yml and MYMETA.json
  ARC/Ref-Util-0.204.tar.gz
  C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for A/AR/ARC/Ref-Util-0.204.tar.gz
---- Unsatisfied dependencies detected during ----
----         ARC/Ref-Util-0.204.tar.gz        ----
    Ref::Util::XS [requires]
Running make for module 'Ref::Util::XS'
Checksum for C:\STRAWB~1\cpan\sources\authors\id\X\XS\XSAWYERX\Ref-Util-XS-0.117.tar.gz ok
Configuring X/XS/XSAWYERX/Ref-Util-XS-0.117.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a gmake-style Makefile
Writing Makefile for Ref::Util::XS
Writing MYMETA.yml and MYMETA.json
  XSAWYERX/Ref-Util-XS-0.117.tar.gz
  C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for X/XS/XSAWYERX/Ref-Util-XS-0.117.tar.gz
cp lib/Ref/Util/XS.pm blib\lib\Ref\Util\XS.pm
Running Mkbootstrap for XS ()
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "XS.bs"
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- XS.bs blib\arch\auto\Ref\Util\XS\XS.bs 644
"C:\Strawberry\perl\bin\perl.exe" "C:\Strawberry\perl\lib\ExtUtils/xsubpp"  -typemap C:\STRAWB~1\perl\lib\ExtUtils\typemap  XS.xs > XS.xsc
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e mv -- XS.xsc XS.c
gcc -c   -std=c99 -DWIN32 -DWIN64 -DPERL_TEXTMODE_SCRIPTS -DMULTIPLICITY -DPERL_IMPLICIT_SYS -DUSE_PERLIO -D__USE_MINGW_ANSI_STDIO -fwrapv -fno-strict-aliasing -mms-bitfields -Os -falign-functions -falign-jumps -falign-labels -falign-loops -freorder-blocks -freorder-blocks-algorithm=stc -freorder-blocks-and-partition   -DVERSION=\"0.117\" -DXS_VERSION=\"0.117\"  "-IC:\STRAWB~1\perl\lib\CORE"   XS.c
In file included from XS.xs:7:
ppport.h:4594: warning: "WIDEST_UTYPE" redefined
 4594 | #  define WIDEST_UTYPE U64TYPE
      |
In file included from C:\STRAWB~1\perl\lib\CORE/perl.h:3326,
                 from XS.xs:3:
C:\STRAWB~1\perl\lib\CORE/handy.h:1422: note: this is the location of the previous definition
 1422 | #define WIDEST_UTYPE PERL_UINTMAX_T
      |
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=>\"Ref::Util::XS\", 'DLBASE' => 'XS', 'DL_FUNCS' => {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
g++ XS.def -o blib\arch\auto\Ref\Util\XS\XS.xs.dll -shared -s -L"C:\STRAWB~1\perl\lib\CORE" -L"C:\STRAWB~1\c\lib" -L"C:\STRAWB~1\c\x86_64-w64-mingw32\lib" -L"C:\STRAWB~1\c\lib\gcc\x86_64-w64-mingw32\13.2.0" XS.o   "C:\STRAWB~1\perl\lib\CORE\libperl540.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
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 755 blib\arch\auto\Ref\Util\XS\XS.xs.dll
  XSAWYERX/Ref-Util-XS-0.117.tar.gz
  C:\STRAWB~1\c\bin\gmake.exe -- OK
  ARC/Ref-Util-0.204.tar.gz
  Has already been unwrapped into directory C:\STRAWB~1\cpan\build\Ref-Util-0.204-1
  ARC/Ref-Util-0.204.tar.gz
  Has already been prepared
Running make for A/AR/ARC/Ref-Util-0.204.tar.gz
---- Unsatisfied dependencies detected during ----
----         ARC/Ref-Util-0.204.tar.gz        ----
    Ref::Util::XS [requires]
Running make for module 'Ref::Util::XS'
  XSAWYERX/Ref-Util-XS-0.117.tar.gz
  Has already been unwrapped into directory C:\STRAWB~1\cpan\build\Ref-Util-XS-0.117-1
  XSAWYERX/Ref-Util-XS-0.117.tar.gz
  Has already been prepared
  XSAWYERX/Ref-Util-XS-0.117.tar.gz
  Has already been made
  ARC/Ref-Util-0.204.tar.gz
  Has already been unwrapped into directory C:\STRAWB~1\cpan\build\Ref-Util-0.204-1
  ARC/Ref-Util-0.204.tar.gz
  Has already been prepared
Running make for A/AR/ARC/Ref-Util-0.204.tar.gz
---- Unsatisfied dependencies detected during ----
----         ARC/Ref-Util-0.204.tar.gz        ----
    Ref::Util::XS [requires]
Running make for module 'Ref::Util::XS'
  XSAWYERX/Ref-Util-XS-0.117.tar.gz
  Has already been unwrapped into directory C:\STRAWB~1\cpan\build\Ref-Util-XS-0.117-1
  XSAWYERX/Ref-Util-XS-0.117.tar.gz
  Has already been prepared
  XSAWYERX/Ref-Util-XS-0.117.tar.gz
  Has already been made
  ARC/Ref-Util-0.204.tar.gz
  Has already been unwrapped into directory C:\STRAWB~1\cpan\build\Ref-Util-0.204-1
  ARC/Ref-Util-0.204.tar.gz
  Has already been prepared
@Grinnz
Copy link
Contributor

Grinnz commented Oct 22, 2024

Neither; it is an installation issue. Ref::Util::XS installation completed successfully, but CPAN.pm does not then detect it to satisfy the dependency of Ref::Util. You may wish to contact a general Perl support channel to debug why the installation is not recognized; the first thing I would try is to install another module and see if CPAN.pm then recognizes it's installed, or if it is specifically an issue recognizing Ref::Util::XS; I suspect it is a more general issue in your case. Another option is to try installing with cpanm, which I believe strawberry perl includes or can otherwise be downloaded in a single script from https://cpanmin.us.

@wjens
Copy link
Author

wjens commented Dec 4, 2024

I started over with a fresh install of Strawberry Perl and used cpanm to install Paws but it fails in a different place.

`
cpanm Paws
...
Successfully installed Config-AWS-0.12
--> Working on Class::Unload
Fetching http://www.cpan.org/authors/id/I/IL/ILMARI/Class-Unload-0.11.tar.gz ... OK
Configuring Class-Unload-0.11 ... OK
Building and testing Class-Unload-0.11 ... OK
Successfully installed Class-Unload-0.11
--> Working on URL::Encode::XS
Fetching http://www.cpan.org/authors/id/C/CH/CHANSEN/URL-Encode-XS-0.03.tar.gz ... OK
Configuring URL-Encode-XS-0.03 ... OK
Building and testing URL-Encode-XS-0.03 ... OK
Successfully installed URL-Encode-XS-0.03
--> Working on URI::Template
Fetching http://www.cpan.org/authors/id/B/BR/BRICAS/URI-Template-0.24.tar.gz ... OK
Configuring URI-Template-0.24 ... OK
Building and testing URI-Template-0.24 ... OK
Successfully installed URI-Template-0.24
! Installing the dependencies failed: Module 'Test::Timer' is not installed
! Bailing out the installation for Paws-0.46.
34 distributions installed

C:\MOD>cpanm Test::Timer
--> Working on Test::Timer
Fetching http://www.cpan.org/authors/id/J/JO/JONASBN/Test-Timer-2.12.tar.gz ... OK
Configuring Test-Timer-2.12 ... OK
==> Found dependencies: Test::Kwalitee
--> Working on Test::Kwalitee
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Test-Kwalitee-1.28.tar.gz ... OK
Configuring Test-Kwalitee-1.28 ... OK
==> Found dependencies: Module::CPANTS::Analyse
--> Working on Module::CPANTS::Analyse
Fetching http://www.cpan.org/authors/id/I/IS/ISHIGAKI/Module-CPANTS-Analyse-1.02.tar.gz ... OK
Configuring Module-CPANTS-Analyse-1.02 ... OK
Building and testing Module-CPANTS-Analyse-1.02 ... FAIL
! Installing Module::CPANTS::Analyse failed. See C:\Users\WILLIA~1.JEN.cpanm\work\1733351067.5592\build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'Module::CPANTS::Analyse' is not installed
! Bailing out the installation for Test-Kwalitee-1.28.
! Installing the dependencies failed: Module 'Test::Kwalitee' is not installed
! Bailing out the installation for Test-Timer-2.12.
`

Any thoughts?

@pplu
Copy link
Owner

pplu commented Dec 5, 2024

Would need to see the build.log to confirm what is happening to Module::CPANTS::Analyse.

Maybe you can try installing Test::Timer with no tests... cpanm -n Test::Timer or force-installing it... as it shouldn't affect Paws.

@wjens
Copy link
Author

wjens commented Dec 5, 2024

Installed Test::Timer without test, but Paws failed.

`C:\MOD>cpanm -n Test::Timer
--> Working on Test::Timer
Fetching http://www.cpan.org/authors/id/J/JO/JONASBN/Test-Timer-2.12.tar.gz ... OK
Configuring Test-Timer-2.12 ... OK
Building Test-Timer-2.12 ... OK
Successfully installed Test-Timer-2.12
1 distribution installed

C:\MOD>cpanm Paws
--> Working on Paws
Fetching http://www.cpan.org/authors/id/J/JR/JROBINSON/Paws-0.46.tar.gz ... OK
Configuring Paws-0.46 ... OK
Building and testing Paws-0.46 ... FAIL
! Installing Paws failed. See C:\Users\WILLIA~1.JEN.cpanm\work\1733407980.3772\build.log for details. Retry with --force to force install it.`

The only other modules that I've installed were the following.
cpanm MIME::Lite cpanm Config::IniFiles cpanm Switch cpanm Win32::ChangeNotify cpanm Net::SFTP cpanm IniConf cpanm Regexp::IPv6

FWIW I only need Paws for SecretsManager, so if there's a way to just install a subset for this, that would be great.

build.log

@pplu
Copy link
Owner

pplu commented Dec 6, 2024

Installing Paws by parts has been on the TODO list for quite some time, but needs some work still. Thanks for the suggestion, though.

Reviewing the build.log, the install fails because the Paws::Credential::CredProcess test fails on Windows. You can install Paws without testing and everything should be OK, since it's not even a default credential provider, and it's possibly only it's test failing on Windows (#259).

@wjens
Copy link
Author

wjens commented Dec 10, 2024

I'm getting closer - Paws installed without tests. I can access SecretsManager but it's throwing alerts when I do (script continues).

Can't locate Lexical/Sub.pm in @inc (you may need to install the Lexical::Sub module) (@inc entries checked: . C:/Strawberry/perl/site/lib/MSWin32-x64-multi-thread C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib) at (eval 347) line 1.

  • Installed by hand, and it went away.

I don't know how to handle these:

Can't locate object method "tid" via package "threads" at C:/Strawberry/perl/lib/XSLoader.pm line 112.

Can't locate auto/Net/SSLeay/DTLS1_2_VER.al in @inc (@inc entries checked: . C:/Strawberry/perl/site/lib/MSWin32-x64-multi-thread C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib) at C:/Strawberry/perl/vendor/lib/IO/Socket/SSL.pm line 3627.

Can't locate auto/Net/SSLeay/DTLS1_VERSI.al in @inc (@inc entries checked: . C:/Strawberry/perl/site/lib/MSWin32-x64-multi-thread C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib) at C:/Strawberry/perl/vendor/lib/IO/Socket/SSL.pm line 3627.

Your vendor has not defined SSLeay macro SSL2_MT_ERROR at C:/Strawberry/perl/vendor/lib/IO/Socket/SSL.pm line 3627.

Can't locate auto/Net/SSLeay/DTLS1_BAD_V.al in @inc (@inc entries checked: . C:/Strawberry/perl/site/lib/MSWin32-x64-multi-thread C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib) at C:/Strawberry/perl/vendor/lib/IO/Socket/SSL.pm line 3627.

@pplu
Copy link
Owner

pplu commented Dec 15, 2024

This looks like a problem with OpenSSL / IO::Socket::SSL on your system :(

Paws uses HTTP::Tiny, which relies on IO::Socket::SSL to speak HTTPS (https://metacpan.org/pod/HTTP::Tiny). Can you build a small script that uses HTTP::Tiny to visit any https website? I understand that this should be failing for you. If you get it to work (reinstalling IO::Socket::SSL?) Paws should be happy.

On the other hand, you are using Perl 5.40. I know that older Strawberry Perls had worked (can't remember exact versions). Maybe if you try with an older Strawberry Perl you have better luck...)

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

3 participants