RE: LWP::Protocol::https

[email protected] (RAPPAZ Francois via par)
Newsgroups perl.par
Message-ID <[email protected]>
My verions of perl is 5.24,
PAR::Packer :  1.037
Module::Scan::Deps: 1.22

Running
U:\>objdump -ax C:\strawberry\perl\vendor\lib\auto\Net\SSLeay\SSLeay.xs.dll | grep "DLL Name"
gives
        DLL Name: msvcrt.dll
        DLL Name: KERNEL32.dll
        DLL Name: LIBEAY32_.dll
        DLL Name: SSLEAY32_.dll
        DLL Name: perl524.dll
And my modules list is now
-M PerlIO
-M PerlIO::scalar
-M Storable
-I C:\strawberry\c\bin\libeay32_.dll
-I C:\strawberry\c\bin\ssleay32_.dll

Running the exe still gives an error when perl is removed from my path

Error GETing https://services.rero.ch/item/1001528198/rero-number: Can't load 'C:\Users\rappazf\AppData\Local\Temp\par-72617070617a66\cache-9942ab0986081e5dff470e0df2c8c9c1ba12bd73\cb0163b7.xs.dll' for module Net::SSLeay: load_file:The specified module could not be found (LWP::Protocol::https not installed) at script/reroid.pl line 21.

Running
pp -o foo.exe -E "use LWP::UserAgent; say LWP::UserAgent->new()->get('https://www.google.com')->content;"

works but foo.exe alone crash with
SSL_ca_file U:\docs\perl\etiquettes_explores does not exist at IO/Socket/SSL.pm line 399.

François


From: Roderich Schupp [mailto:[email protected]]
Sent: 22 July 2017 18:55
To: RAPPAZ Francois <[email protected]>
Cc: [email protected]
Subject: Re: LWP::Protocol::https

On Fri, Jul 21, 2017 at 2:29 PM, RAPPAZ Francois via par <[email protected]<mailto:[email protected]>> wrote:
Run on a pc without perl installed I'm getting the error
Error GETing https://services.rero.ch/item/1001528198/rero-number: Can't load 'C:\Users\zinaouih\AppData\Local\Temp\par-7a696e616f756968\cache-d34012c84b0014f269b7080f9a8969871097584f\cb0163b7.xs.dll' for module Net::SSLeay: load_file:Le module specifie est introuvable (LWP::Protocol::https not installed) at script/reroid.pl<http://reroid.pl> line 18.

Which version of perl, PAR::Packer and Module::ScanDeps are you using?

I can't reproduce this (Linux, perl 5.24.1, PAR::Packer 1.037, Module::ScanDeps 1.23) with a naive

pp -o foo.exe -E 'use LWP::UserAgent; say LWP::UserAgent->new()->get("https://www.google.com")->content;'

(I double-checked that running foo.exe doesn't use any installed perl stuff).
The problem is probably Net/SSLeay/SSLeay.xs.dll which most likely links against some libssl*.dll and libcrypto*.dll (from OpenSSL).
You can check this with

objdump -ax .../Net/SSLeay/SSLeay.xs.dll | grep "DLL Name"

Find these and include them with "-I".

On a side note: your module list looks partially bogus to me

-l C:/strawberry/perl/lib/auto/PerlIO/scalar/scalar.xs.dll
-l C:/strawberry/perl/lib/auto/Storable/Storable.xs.dll

It's never necessary to explicitly include the "glue" DLLs for a perl module if the module itself is included implicitly or explicitly as with

-M PerlIO/scalar.pm<http://scalar.pm>
-M Storable.pm

And these are always included:

-M PerlIO.pm
-M PerlIO/scalar.pm<http://scalar.pm>

The "-M Foo/Bar.pm" syntax is deprecated, please use "-M Foo::Bar".

Cheers, Roderich
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.