Opened 19 months ago

Closed 19 months ago

Last modified 19 months ago

#67321 closed defect (fixed)

p5.34-io-socket-ssl @2.81.0 does not build on PPC Leopard, Mac OS X 20.5.8, because "API-different OpenSSL versions compiled in (0x30000050) vs linked (0x30100000) at Makefile.PL line 68."

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: neverpanic (Clemens Lang)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: leopard ppc Cc: larryv (Lawrence Velázquez), neverpanic (Clemens Lang)
Port: p5.34-io-socket-ssl

Description

Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_perl_p5-io-socket-ssl/p5.34-io-socket-ssl/work/IO-Socket-SSL-2.081" && /opt/local/bin/perl5.34 Makefile.PL INSTALLDIRS=vendor CC="/usr/bin/gcc-4.2" LD="/usr/bin/gcc-4.2" 
DEBUG: system:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_perl_p5-io-socket-ssl/p5.34-io-socket-ssl/work/IO-Socket-SSL-2.081" && /opt/local/bin/perl5.34 Makefile.PL INSTALLDIRS=vendor CC="/usr/bin/gcc-4.2" LD="/usr/bin/gcc-4.2" 
API-different OpenSSL versions compiled in (0x30000050) vs linked (0x30100000) at Makefile.PL line 68.
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_perl_p5-io-socket-ssl/p5.34-io-socket-ssl/work/IO-Socket-SSL-2.081" && /opt/local/bin/perl5.34 Makefile.PL INSTALLDIRS=vendor CC="/usr/bin/gcc-4.2" LD="/usr/bin/gcc-4.2" 
Exit code: 255
Error: Failed to configure p5.34-io-socket-ssl: configure failure: command execution failed

Makefile.PL contains:

 57 if (my $compiled = eval {
 58     require Net::SSLeay;
 59     Net::SSLeay::OPENSSL_VERSION_NUMBER()
 60 }) {
 61     # don't support too old OpenSSL versions anymore, only causes trouble
 62     die sprintf(
 63         "minimal required version for OpenSSL is 0.9.8, but your Net::SSLeay reports 0x%08x",
 64         $compiled) if $compiled < 0x00908000;
 65 
 66     my $linked = Net::SSLeay::SSLeay();
 67     if (($compiled ^ $linked) >= 0x00001000) {
 68         die sprintf("API-different OpenSSL versions compiled in (0x%08x) vs linked (0x%08x)",
 69             $compiled,$linked);
 70     }
 71 
 72     # OpenSSL 1.1.1e introduced behavior changes breaking various code
 73     # will likely be reverted  in 1.1.1f - enforce to not use this version
 74     if ($linked == 0x1010105f) {
 75         die "detected OpenSSL 1.1.1e - please use a different version\n";
 76     }
 77 }

Attachments (1)

main.log (7.5 KB) - added by ballapete (Peter "Pete" Dyballa) 19 months ago.
Main.log from PPC Leopard

Download all attachments as: .zip

Change History (6)

Changed 19 months ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

Main.log from PPC Leopard

comment:1 Changed 19 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: larryv neverpanic added

I guess the revision of p5-net-ssleay should be increased anytime the API version of openssl changes, and that didn't happen when openssl3 was updated to 3.1.0? Or p5-io-socket-ssl's makefile should be patched so it isn't so picky?

comment:2 Changed 19 months ago by neverpanic (Clemens Lang)

Yeah, somebody apparently at some point in time came up with these checks, and they've been copied into many programs, and now we have to revbump them every time the OpenSSL minor version increases even if the ABI only introduces new symbols (which isn't an ABI break).

There's a list at the top of the OpenSSL Portfile with such ports. I'll add p5-net-ssleay there, but ideally we would convince the upstream of this software that the check is doing more harm than it is helping and remove it.

We do not add similar checks for any other library and rely on the loader, library versioning, and symbol versioning (at least on platforms that support it) to detect such issues. There should not be a runtime check.

comment:4 Changed 19 months ago by neverpanic (Clemens Lang)

Owner: set to neverpanic
Resolution: fixed
Status: newclosed

In 5dbfa48b48b5b5b844c4dca7c4d742dea5b2555a/macports-ports (master):

p5-net-ssleay: Rebump for OpenSSL 3.1 update

Software that depends on p5-net-ssleay (e.g., p5-io-socket-ssl) contains
checks that assume that every minor version bump of OpenSSL is an ABI
change, which is incorrect. This incorrect assumption then leads to
build failures.

Revbump p5-net-ssleay to fix this and add a note to the openssl3
Portfile to do this every time openssl3 is updated to a new minor
version.

Closes: #67321

comment:5 Changed 19 months ago by ballapete (Peter "Pete" Dyballa)

After selfupdate it built.

Note: See TracTickets for help on using tickets.