Original Message:
Sent: Wed January 03, 2024 04:13 PM
From: Jim Rinn
Subject: perl 5.34 adding LWP::Protocol::https fails
I realized I've mixed a couple of issues. The use statement in my perl script for LWP::Protocol::https was commented due to some other testing, hence the error with that module. LWP::Protocol::https is indeed installed.
Now trying to execute my script I have a SSLeay issue. Below is what I get.
Attempting to install Net::SSL fails. it also displays the information about probably not needing Crypt::SSLeay and that other modules really provide the service.
I'm now rather confused and not sure what to do next.
Jim
Begining of my script that uses the https protocol showing the use statements.
mvsx1:/home/rinn/scripts# pg sp_perl.pl
#!/opt/freeware/bin/perl
use strict;
use warnings;
use Getopt::Long;
use List::Util qw(min);
use LWP::UserAgent ();
use LWP::Protocol::https();
# use URL::Encode;
use HTTP::CookieJar::LWP ();
use HTTP::Request::Common qw(POST);
use HTML::TreeBuilder;
use HTML::FormatText;
#use HTML::FormatRTF;
#use HTML::Parser ();
use POSIX();
use Data::Dumper;
Running my script gives this error. Looks like the Net::"SSL is missing.
mvsx1:/home/rinn/scripts# sp_perl.pl -h x1 -rti
Can't load '/opt/freeware/lib64/perl5/5.34/site_perl//auto/Net/SSLeay/SSLeay.so' for module Net::SSLeay: 0509-130 Symbol reso
lution failed for /opt/freeware/lib64/perl5/5.34/site_perl/auto/Net/SSLeay/SSLeay.so because:
0509-136 Symbol SSL_CTX_set_psk_client_callback (number 541) is not exported from
dependent module /usr/lib/libssl.a[libssl.so.1.1].
0509-136 Symbol SSL_set_psk_client_callback (number 542) is not exported from
dependent module /usr/lib/libssl.a[libssl.so.1.1].
0509-022 Cannot load module /opt/freeware/lib64/perl5/5.34/site_perl//auto/Net/SSLeay/SSLeay.so.
0509-026 System error: Cannot run a file that does not have a valid format.
0509-192 Examine .loader section symbols with the
'dump -Tv' command. at /opt/freeware/lib64/perl5/5.34/DynaLoader.pm line 193.
at /opt/freeware/share/perl5/site_perl/IO/Socket/SSL.pm line 19.
Compilation failed in require at /opt/freeware/share/perl5/site_perl/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at /opt/freeware/share/perl5/site_perl/IO/Socket/SSL.pm line 19.
Compilation failed in require at /opt/freeware/share/perl5/site_perl/Net/HTTPS.pm line 25.
Can't locate Net/SSL.pm in @INC (you may need to install the Net::SSL module) (@INC contains: /opt/freeware/lib64/perl5/5.34/site_pe
rl/ /opt/freeware/share/perl5/site_perl/ /opt/freeware/lib64/perl5/5.34/vendor_perl/ /opt/freeware/share/perl5/vendor_perl/ /opt/fre
eware/lib64/perl5/5.34/ /opt/freeware/share/perl5/5.34/) at /opt/freeware/share/perl5/site_perl/Net/HTTPS.pm line 29.
Compilation failed in require at /opt/freeware/share/perl5/5.34/base.pm line 137.
...propagated at /opt/freeware/share/perl5/5.34/base.pm line 159.
BEGIN failed--compilation aborted at /opt/freeware/share/perl5/site_perl/LWP/Protocol/https.pm line 112.
Compilation failed in require at sp_perl.pl line 8.
BEGIN failed--compilation aborted at sp_perl.pl line 8.
mvsx1:/home/rinn/scripts#
Attempting to install Net::SSL installation using freeware cpan
mvsx1:/home/root# /opt/freeware/bin/cpan
Loading internal logger. Log::Log4perl recommended for better logging
cpan shell -- CPAN exploration and modules installation (v2.36)
Enter 'h' for help.
cpan[1]>
cpan[2]> install Net::SSL
Running install for module 'Net::SSL'
Checksum for /home/root/.cpan/sources/authors/id/N/NA/NANIS/Crypt-SSLeay-0.72.tar.gz ok
Scanning cache /home/root/.cpan/build for sizes
............................................................................DONE
Configuring N/NA/NANIS/Crypt-SSLeay-0.72.tar.gz with Makefile.PL
*** THIS IS NOT AN ERROR, JUST A MESSAGE FOR YOUR INFORMATION ***
Do you really need Crypt::SSLeay?
Starting with version 6.02 of LWP, https support was unbundled into
LWP::Protocol::https. This module specifies as one of its prerequisites
IO::Socket::SSL which is automatically used by LWP::UserAgent unless
this preference is overridden separately. IO::Socket::SSL is a more
complete implementation, and, crucially, it allows hostname
verification. Crypt::SSLeay does not support this. At this point,
Crypt::SSLeay is maintained to support existing software that already
depends on it.
However, it is possible that your software does not really depend on
Crypt::SSLeay, only on the ability of LWP::UserAgent class to
communicate with sites over SSL/TLS.
If are using version LWP 6.02 or later, and therefore have installed
LWP::Protocol::https and its dependencies, and do not explicitly use
Net::SSL before loading LWP::UserAgent, or override the default socket
class, you are probably using IO::Socket::SSL and do not really need
Crypt::SSLeay.
Before installing Crypt::SSLeay, you may want to try specifying a
dependency on LWP::Protocol::https.
================================================================================
Output from '/home/root/.cpan/build/Crypt-SSLeay-0.72-2/openssl-version':
OpenSSL 3.0.10 1 Aug 2023
300000a0
================================================================================
The test suite can attempt to connect to public servers to ensure that the
code is working properly. If you are behind a strict firewall or have no
network connectivity, these tests may fail (through no fault of the code).
Do you want to run the live tests (y/N)? [N]
Checking if your kit is complete...
Looks good
Warning (mostly harmless): No library found for -lssl32
Warning (mostly harmless): No library found for -lssleay32
Warning (mostly harmless): No library found for -leay32
Warning (mostly harmless): No library found for -llibeay32
Generating a Unix-style Makefile
Writing Makefile for Crypt::SSLeay
Writing MYMETA.yml and MYMETA.json
NANIS/Crypt-SSLeay-0.72.tar.gz
/opt/freeware/bin/perl Makefile.PL -- OK
Running make for N/NA/NANIS/Crypt-SSLeay-0.72.tar.gz
cp lib/Net/SSL.pm blib/lib/Net/SSL.pm
cp SSLeay.pm blib/lib/Crypt/SSLeay.pm
cp lib/Crypt/SSLeay/Err.pm blib/lib/Crypt/SSLeay/Err.pm
cp lib/Crypt/SSLeay/Conn.pm blib/lib/Crypt/SSLeay/Conn.pm
cp lib/Crypt/SSLeay/Version.pm blib/lib/Crypt/SSLeay/Version.pm
cp lib/Crypt/SSLeay/CTX.pm blib/lib/Crypt/SSLeay/CTX.pm
cp lib/Crypt/SSLeay/MainContext.pm blib/lib/Crypt/SSLeay/MainContext.pm
cp lib/Crypt/SSLeay/X509.pm blib/lib/Crypt/SSLeay/X509.pm
Running Mkbootstrap for SSLeay ()
chmod 644 "SSLeay.bs"
"/opt/freeware/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- SSLeay.bs blib/arch/auto/Crypt/SSLeay/SSLeay.bs 644
"/opt/freeware/bin/perl" "/opt/freeware/share/perl5/site_perl/ExtUtils/xsubpp" -typemap '/opt/freeware/share/perl5/5.34/ExtUtils/t
pemap' -typemap '/home/root/.cpan/build/Crypt-SSLeay-0.72-2/typemap' SSLeay.xs > SSLeay.xsc
mv SSLeay.xsc SSLeay.c
gcc -maix64 -c -D_THREAD_SAFE -O2 -maix64 -L/opt/freeware/lib64 -L/opt/freeware/lib -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURC
-DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -I/opt/freeware/include -DNEED_PTHREAD_INIT -fwrapv -fno-strict-aliasing -pipe -maix64 -DU
E_64_BIT_ALL -D_FORTIFY_SOURCE=2 -O -DVERSION=\"0.72\" -DXS_VERSION=\"0.72\" "-I/opt/freeware/lib64/perl5/5.34/CORE" SSLeay.c
SSLeay.xs: In function 'XS_Crypt__SSLeay__CTX_new':
SSLeay.xs:152:31: warning: implicit declaration of function 'SSLv3_client_method'; did you mean 'SSLv23_client_method'? [8;;https:/
gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration8;;]
152 | ctx = SSL_CTX_new(SSLv3_client_method());
| ^~~~~~~~~~~~~~~~~~~
| SSLv23_client_method
SSLeay.xs:152:31: warning: passing argument 1 of 'SSL_CTX_new' makes pointer from integer without a cast [8;;https://gcc.gnu.org/on
inedocs/gcc/Warning-Options.html#index-Wint-conversion-Wint-conversion8;;]
152 | ctx = SSL_CTX_new(SSLv3_client_method());
| ^~~~~~~~~~~~~~~~~~~~~
| |
| int
In file included from SSLeay.xs:35:
/usr/include/openssl/ssl.h:1619:47: note: expected 'const SSL_METHOD *' {aka 'const struct ssl_method_st *'} but argument is of typ
'int'
1619 | __owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
| ~~~~~~~~~~~~~~~~~~^~~~
SSLeay.xs:157:31: warning: implicit declaration of function 'SSLv2_client_method'; did you mean 'SSLv23_client_method'? [8;;https:/
gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wimplicit-function-declaration-Wimplicit-function-declaration8;;]
157 | ctx = SSL_CTX_new(SSLv2_client_method());
| ^~~~~~~~~~~~~~~~~~~
| SSLv23_client_method
SSLeay.xs:157:31: warning: passing argument 1 of 'SSL_CTX_new' makes pointer from integer without a cast [8;;https://gcc.gnu.org/on
inedocs/gcc/Warning-Options.html#index-Wint-conversion-Wint-conversion8;;]
157 | ctx = SSL_CTX_new(SSLv2_client_method());
| ^~~~~~~~~~~~~~~~~~~~~
| |
| int
In file included from SSLeay.xs:35:
/usr/include/openssl/ssl.h:1619:47: note: expected 'const SSL_METHOD *' {aka 'const struct ssl_method_st *'} but argument is of typ
'int'
1619 | __owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
| ~~~~~~~~~~~~~~~~~~^~~~
"/opt/freeware/bin/perl" -MExtUtils::Mksymlists \
-e "Mksymlists('NAME'=>\"Crypt::SSLeay\", 'DLBASE' => 'SSLeay', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_V
RS' => []);"
rm -f blib/arch/auto/Crypt/SSLeay/SSLeay.so
LD_RUN_PATH="/usr/lib:/opt/freeware/lib" gcc -maix64 -Wl,-b64 -Wl,-G -Wl,-bI:/opt/freeware/lib64/perl5/5.34/CORE/perl.exp -Wl,-bn
entry -lpthreads -lc -lm -L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-bE:SSLeay.exp SSLeay.o -o blib/arch/auto/Crypt/SSLeay/SSLe
y.so \
-lssl -lcrypto -lz \
chmod 755 blib/arch/auto/Crypt/SSLeay/SSLeay.so
Manifying 3 pod documents
NANIS/Crypt-SSLeay-0.72.tar.gz
/opt/freeware/bin/make -- OK
The current configuration of allow_installing_outdated_dists is 'ask/no', but for this option we would need 'CPAN::DistnameInfo' in
talled. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this opti
n does not take effect
Running make test for NANIS/Crypt-SSLeay-0.72.tar.gz
"/opt/freeware/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- SSLeay.bs blib/arch/auto/Crypt/SSLeay/SSLeay.bs 644
PERL_DL_NONLAZY=1 "/opt/freeware/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_h
rness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-basic.t ..... 1/?
# Failed test 'use Crypt::SSLeay;'
# at t/00-basic.t line 6.
# Tried to use 'Crypt::SSLeay'.
# Error: Can't load '/home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so' for module Crypt::SSLea
: rtld: 0712-001 Symbol SSLv2_client_method was referenced
# from module /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so(), but a runtime definition
# of the symbol was not found.
# rtld: 0712-001 Symbol SSLv3_client_method was referenced
# from module /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so(), but a runtime definition
# of the symbol was not found. at /opt/freeware/lib64/perl5/5.34/DynaLoader.pm line 193.
# at t/00-basic.t line 6.
# Compilation failed in require at t/00-basic.t line 6.
# BEGIN failed--compilation aborted at t/00-basic.t line 6.
# Failed test 'use Crypt::SSLeay::CTX;'
# at t/00-basic.t line 7.
# Tried to use 'Crypt::SSLeay::CTX'.
# Error: Attempt to reload Crypt/SSLeay.pm aborted.
# Compilation failed in require at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Crypt/SSLeay/CTX.pm line 2.
# Compilation failed in require at t/00-basic.t line 7.
# BEGIN failed--compilation aborted at t/00-basic.t line 7.
# Failed test 'use Crypt::SSLeay::Conn;'
# at t/00-basic.t line 8.
# Tried to use 'Crypt::SSLeay::Conn'.
# Error: Attempt to reload Crypt/SSLeay.pm aborted.
# Compilation failed in require at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Crypt/SSLeay/Conn.pm line 2.
# Compilation failed in require at t/00-basic.t line 8.
# BEGIN failed--compilation aborted at t/00-basic.t line 8.
# Failed test 'use Crypt::SSLeay::Err;'
# at t/00-basic.t line 9.
# Tried to use 'Crypt::SSLeay::Err'.
# Error: Attempt to reload Crypt/SSLeay.pm aborted.
# Compilation failed in require at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Crypt/SSLeay/Err.pm line 2.
# Compilation failed in require at t/00-basic.t line 9.
# BEGIN failed--compilation aborted at t/00-basic.t line 9.
# Failed test 'use Crypt::SSLeay::MainContext;'
# at t/00-basic.t line 10.
# Tried to use 'Crypt::SSLeay::MainContext'.
# Error: Attempt to reload Crypt/SSLeay/CTX.pm aborted.
# Compilation failed in require at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Crypt/SSLeay/MainContext.pm line 8.
# Compilation failed in require at t/00-basic.t line 10.
# BEGIN failed--compilation aborted at t/00-basic.t line 10.
# Failed test 'use Crypt::SSLeay::Version;'
# at t/00-basic.t line 12.
# Tried to use 'Crypt::SSLeay::Version'.
# Error: Attempt to reload Crypt/SSLeay.pm aborted.
# Compilation failed in require at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Crypt/SSLeay/Version.pm line 2.
# Compilation failed in require at t/00-basic.t line 12.
# BEGIN failed--compilation aborted at t/00-basic.t line 12.
# Failed test 'use Net::SSL;'
# at t/00-basic.t line 23.
# Tried to use 'Net::SSL'.
# Error: Attempt to reload Crypt/SSLeay.pm aborted.
# Compilation failed in require at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Net/SSL.pm line 20.
# Compilation failed in require at t/00-basic.t line 23.
# BEGIN failed--compilation aborted at t/00-basic.t line 23.
Undefined subroutine &main::main_ctx called at t/00-basic.t line 49.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 2 just after 13.
t/00-basic.t ..... Dubious, test returned 2 (wstat 512, 0x200)
Failed 7/13 subtests
(less 3 skipped subtests: 3 okay)
t/01-connect.t ... Can't load '/home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so' for module Crypt::
SLeay: rtld: 0712-001 Symbol SSLv2_client_method was referenced
from module /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so(), but a runtime definition
of the symbol was not found.
rtld: 0712-001 Symbol SSLv3_client_method was referenced
from module /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so(), but a runtime definition
of the symbol was not found. at /opt/freeware/lib64/perl5/5.34/DynaLoader.pm line 193.
at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Net/SSL.pm line 20.
Compilation failed in require at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Net/SSL.pm line 20.
Compilation failed in require at t/01-connect.t line 6.
BEGIN failed--compilation aborted at t/01-connect.t line 6.
# Looks like your test exited with 8 before it could output anything.
t/01-connect.t ... Dubious, test returned 8 (wstat 2048, 0x800)
Failed 8/8 subtests
t/02-live.t ...... # Reading configuration from 'test.config' on aix
# network_tests : 0
t/02-live.t ...... skipped: Network tests disabled
t/03-version.t ... Can't load '/home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so' for module Crypt::
SLeay: rtld: 0712-001 Symbol SSLv2_client_method was referenced
from module /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so(), but a runtime definition
of the symbol was not found.
rtld: 0712-001 Symbol SSLv3_client_method was referenced
from module /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/arch/auto/Crypt/SSLeay/SSLeay.so(), but a runtime definition
of the symbol was not found. at /opt/freeware/lib64/perl5/5.34/DynaLoader.pm line 193.
at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Crypt/SSLeay/Version.pm line 2.
Compilation failed in require at /home/root/.cpan/build/Crypt-SSLeay-0.72-2/blib/lib/Crypt/SSLeay/Version.pm line 2.
Compilation failed in require at t/03-version.t line 7.
BEGIN failed--compilation aborted at t/03-version.t line 14.
t/03-version.t ... Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
t/boilerplate.t .. ok
t/manifest.t ..... skipped: Author tests not required for installation
Test Summary Report
-------------------
t/00-basic.t (Wstat: 512 (exited 2) Tests: 13 Failed: 7)
Failed tests: 1-5, 7-8
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t/01-connect.t (Wstat: 2048 (exited 8) Tests: 0 Failed: 0)
Non-zero exit status: 8
Parse errors: Bad plan. You planned 8 tests but ran 0.
t/03-version.t (Wstat: 2048 (exited 8) Tests: 0 Failed: 0)
Non-zero exit status: 8
Parse errors: No plan found in TAP output
Files=6, Tests=22, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.22 cusr 0.02 csys = 0.25 CPU)
Result: FAIL
Failed 3/6 test programs. 7/22 subtests failed.
make: *** [Makefile:1102: test_dynamic] Error 255
Lockfile removed.
NANIS/Crypt-SSLeay-0.72.tar.gz
/opt/freeware/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports NANIS/Crypt-SSLeay-0.72.tar.gz
Failed during this command:
NANIS/Crypt-SSLeay-0.72.tar.gz : make_test NO
cpan[3]>
------------------------------
Jim Rinn
Original Message:
Sent: Wed January 03, 2024 08:18 AM
From: Ayappan P
Subject: perl 5.34 adding LWP::Protocol::https fails
What was the exact error while trying to install LWP::Protocol:https with openssl 3.0 ? I just tried it and was able to install it.
------------------------------
Ayappan P
Original Message:
Sent: Mon January 01, 2024 09:24 PM
From: Jim Rinn
Subject: perl 5.34 adding LWP::Protocol::https fails
Downgraded to openssl-1.1.1.220 and was able to install LWP::Protocol::https which allowed my perl scripts to run.
However - this downgrades AIX oslevel to 7200-05-06-2320 due to the 'out of date' openssl.
Re-installed current openssl-3.0.10.1001. Perl script now fails again with LWP::Protocol::https not installed error. However listing the installed perl modules, LWP modiel is in the list.
Does this mean openssl 3.0 is not backward compatable to 1.1.1.?
------------------------------
Jim Rinn
Original Message:
Sent: Fri December 22, 2023 10:36 AM
From: Jim Rinn
Subject: perl 5.34 adding LWP::Protocol::https fails
I'm using the toolbox perl.
You are correct. the AIX delivered perl on my system does include LPW::Protocol::https.
Trying my script with the AIX perl, there is a missing module.
It has been my understanding that the perl delivered with AIX should not be modified with the additon of more modules or updating of existing modules. The main reason being not to potentially break anything delivered with AIX. Seems like a good practice.
Jim
Original Message:
Sent: 12/22/2023 1:59:00 AM
From: Ayappan P
Subject: RE: perl 5.34 adding LWP::Protocol::https fails
The perl.rte fileset shipping with AIX base OS already has LWP::Protocol::https module I guess. And it should work with openssl 3.
Which perl are you using ? AIX base perl or AIX Toolbox perl ?
------------------------------
Ayappan P
Original Message:
Sent: Thu December 21, 2023 02:44 PM
From: Jim Rinn
Subject: perl 5.34 adding LWP::Protocol::https fails
Recently updated aix from 7.2.5.6 to 7..2.5.7. Apparently this update update openssl to 3.0.10.1001.
As a result I cannot install LWP::Protocol::https from the cpan library. The SSLeay library cannot load.
Searches say the openssl 3.0 cannot be used to compile. It's missing the compile symbold.
One solution sys to install SSLeay from the open toolbox. I don;t find the specified packages in the toolbox.
I'm rather confused at this point. I need to add the https protocol for my perl scripts and there doesn't seem to be a way to do this without.
Any help resolving this would be appreciated.
------------------------------
Jim Rinn
------------------------------