Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#65579 closed defect (fixed)

mysql8 - latest update to 8.0.30 broke openssl links

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

Description

The latest update to 8.0.30https://github.com/macports/macports-ports/commit/67c25ed1f7749637fde72edb42b30accc748778d has me in an endless rev-upgrade loop with the following missing links being the culprit:

sudo port -v rev-upgrade
--->  Scanning binaries for linking errors
Could not open /opt/local/lib/mysql8/bin/../lib/libcrypto.1.1.dylib: Error opening or reading file (referenced from /opt/local/lib/mysql8/bin/my_openssl)
Could not open /opt/local/lib/mysql8/bin/../lib/libssl.1.1.dylib: Error opening or reading file (referenced from /opt/local/lib/mysql8/bin/my_openssl)
--->  Found 2 broken files, matching files to ports
--->  Found 1 broken port, determining rebuild order
You can always run 'port rev-upgrade' again to fix errors.
The following ports will be rebuilt: mysql8 @8.0.30

This update not only updated the version, but also snuck in an edit to "databases/mysql8/files/patch-cmake-ssl-include.diff" which I believe removes the generation of the openssl paths.

Change History (5)

comment:1 Changed 2 years ago by jmroot (Joshua Root)

Owner: set to herbygillot
Status: newassigned

comment:2 Changed 2 years ago by herbygillot (Herby Gillot)

Resolution: fixed
Status: assignedclosed

In d5b06e1891e267017a206413d1b802c5ebdd6c0c/macports-ports (master):

mysql8: prevent MySQL from building its own custom OpenSSL

Fixes: #65579

comment:3 Changed 2 years ago by herbygillot (Herby Gillot)

... but also snuck in an edit to "databases/mysql8/files/patch-cmake-ssl-include.diff" which I believe removes the generation of the openssl paths.

No one here is trying to "sneak" anything in.

The lines removed from the SSL patch in the commit you're referencing (https://github.com/macports/macports-ports/commit/67c25ed1f7749637fde72edb42b30accc748778d) were removed because they are no longer valid or necessary. The upstream 8.0.30 source already contains a fix for the issue those lines were intended to address, so they were cleaned up.

The fix for this turns out to be preventing MySQL from building its own custom version of OpenSSL, which includes the tool my_openssl, and which is also building those broken libraries (/opt/local/lib/mysql8/bin/../lib/libcrypto.1.1.dylib, /opt/local/lib/mysql8/bin/../lib/libssl.1.1.dylib). Doing this forces it to correctly use MacPorts OpenSSL.

As part of this fix, I also removed reference to the Trac ticket that the deleted lines were addressing. This is just further cleanup that I missed prior.

This fix is now available in ports, so you can update your ports tree and try upgrading mysql8 once again to verify whether it works or not before slinging further allegations.

comment:4 Changed 2 years ago by jhoyt4

@herbygillot - thank you for fixing this I can confirm that it now installs properly. Also thank you for the explanation above.

Finally, my apologies. I did not intend to raise your ire / get your blood boiling. "Snuck" was a very poor choice of words on my part.

comment:5 Changed 2 years ago by herbygillot (Herby Gillot)

Thanks @jhoyt4

Note: See TracTickets for help on using tickets.