Opened 4 months ago

Closed 2 days ago

#69259 closed defect (fixed)

mysql82: rev-upgrade infinite loop due to broken libcrypto and libssl links

Reported by: jhoyt4 Owned by: herbygillot (Herby Gillot)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: mysql82

Description

Trimmed from the debug log

Could not open /opt/local/lib/mysql82/bin/../lib/libcrypto.3.dylib: Error opening or reading file (referenced from /opt/local/lib/mysql82/bin/my_openssl)
DEBUG: Marking /opt/local/lib/mysql82/bin/my_openssl as broken
Could not open /opt/local/lib/mysql82/bin/../lib/libssl.3.dylib: Error opening or reading file (referenced from /opt/local/lib/mysql82/bin/my_openssl)
DEBUG: Marking /opt/local/lib/mysql82/bin/my_openssl as broken
--->  Found 2 broken files, matching files to ports
Error: Port mysql82 is still broken after rebuilding it more than 3 times.
DEBUG: rev-upgrade failed: Port mysql82 still broken after rebuilding 3 times
    while executing
"error "Port $portname still broken after rebuilding $rebuild_tries time${s}""
    (procedure "revupgrade_scanandrebuild" line 323)
    invoked from within
"revupgrade_scanandrebuild broken_port_counts $opts"
Error: rev-upgrade failed: Port mysql82 still broken after rebuilding 3 times
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.

I believe you can ignore any references in the atached log to qt5-mysql-plugin @0:5.15.12_0+mysql82, qt6-mysql-plugin @0:6.4.3_0+mysql82, and p5.34-dbd-mysql @0:5.3.0_0+mysql82 as they won't be in your ports tree. This bug was discovered while trying to update those particular ports' variants to include mysql82.

Attachments (2)

rev-upgade.log (238.4 KB) - added by jhoyt4 4 months ago.
Rev Upgrade Through configure
build.log.bz2 (337.6 KB) - added by jmroot (Joshua Root) 4 months ago.

Download all attachments as: .zip

Change History (10)

Changed 4 months ago by jhoyt4

Attachment: rev-upgade.log added

Rev Upgrade Through configure

comment:1 Changed 4 months ago by jhoyt4

apologies that I had to break the build log into parts - it was well over trac's 10mb limit.

comment:2 Changed 4 months ago by jhoyt4

As a double check, I removed my local ports and tried to rev-upgrade. Hit the same errors

--->  Scanning binaries for linking errors
Could not open /opt/local/lib/mysql82/bin/../lib/libcrypto.3.dylib: Error opening or reading file (referenced from /opt/local/lib/mysql82/bin/my_openssl)
Could not open /opt/local/lib/mysql82/bin/../lib/libssl.3.dylib: Error opening or reading file (referenced from /opt/local/lib/mysql82/bin/my_openssl)
--->  Found 2 broken files, matching files to ports
--->  Found 1 broken port, determining rebuild order

Last edited 4 months ago by jhoyt4 (previous) (diff)

comment:3 Changed 4 months ago by jhoyt4

Summary: mysql82: rev-upgrade infinite loop due to broken libcrypto linkmysql82: rev-upgrade infinite loop due to broken libcrypto and libssl links

comment:4 Changed 4 months ago by jmroot (Joshua Root)

Owner: set to herbygillot
Status: newassigned

For files over 1 MB you can and should compress them before uploading, as Trac will not preview them over that size anyway.

Changed 4 months ago by jmroot (Joshua Root)

Attachment: build.log.bz2 added

comment:5 Changed 2 months ago by josepheiba

hi, any ideas on how to fix this

comment:6 Changed 4 days ago by herbygillot (Herby Gillot)

mysql8 has been updated to 8.4.0; this issue should be resolved. Can someone confirm?

comment:7 Changed 4 days ago by ryandesign (Ryan Carsten Schmidt)

Yes, the problem is resolved to the extent that /opt/local/lib/mysql8/bin/my_openssl now links only with things that exist.

It still links with its own copies of openssl libraries, which could be viewed as undesirable:

% otool -L /opt/local/lib/mysql8/bin/my_openssl 
/opt/local/lib/mysql8/bin/my_openssl:
	@loader_path/../lib/libssl.3.dylib (compatibility version 3.0.0, current version 3.0.0)
	@loader_path/../lib/libcrypto.3.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.3.1)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.100.3)

mysql8 declares a library dependency on the openssl3 port so one might reasonably assume that it would link with that port's libraries, not have its own copy.

comment:8 Changed 2 days ago by herbygillot (Herby Gillot)

Resolution: fixed
Status: assignedclosed

In 8a26fe86ba69f2407c17470aaa8c144fca0faab9/macports-ports (master):

mysql8: use MacPorts OpenSSL

Fixes: #69259

Note: See TracTickets for help on using tickets.