#69428 closed defect (fixed)
mariadb*: fails to build with libxml2 2.12.x
Reported by: | amstilp (Adrienne Stilp) | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | markuz (Marco Antonio Islas Cruz), hbsimon (Horst Simon), Kirkman (Josh Renaud), Mikedafish, jasimon9 | |
Port: | mariadb mariadb-10.0 mariadb-10.1 mariadb-10.2 mariadb-10.3 mariadb-10.4 mariadb-10.5 mariadb-10.6 mariadb-10.7 mariadb-10.8 mariadb-10.9 mariadb-10.10 mariadb-10.11 |
Description
When attempting to install on a clean install of Macports, I get this error:
---> Building mariadb-10.4 Error: Failed to build mariadb-10.4: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mariadb-10.4/mariadb-10.4/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port mariadb-10.4 failed
I have an m1x macbook pro. I got the same error in both MacOS 10.13 (Ventura) and 10.14 (Sonoma). Previous installs of the port in Ventura worked fine (~1 year ago). I'm attaching the full log - possibly an error with libxml2?
I've also tried MariaDB 10.5, 10.6, and 10.11, and all fail to build with similar errors.
Attachments (1)
Change History (35)
Changed 8 months ago by amstilp (Adrienne Stilp)
Attachment: | main.log.gz added |
---|
comment:1 Changed 8 months ago by kencu (Ken)
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mariadb-10.4/mariadb-10.4/work/server-mariadb-10.4.27/storage/connect/libdoc.cpp:1094:17: error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers :info:build if ((xerr = xmlGetLastError())) :info:build ^~~~~~~~~~~~~~~~~ :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mariadb-10.4/mariadb-10.4/work/server-mariadb-10.4.27/storage/connect/libdoc.cpp:1099:17: error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers :info:build if ((xerr = xmlGetLastError())) :info:build ^~~~~~~~~~~~~~~~~ :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mariadb-10.4/mariadb-10.4/work/server-mariadb-10.4.27/storage/connect/libdoc.cpp:1106:15: error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers :info:build if ((xerr = xmlGetLastError())) :info:build ^~~~~~~~~~~~~~~~~ :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mariadb-10.4/mariadb-10.4/work/server-mariadb-10.4.27/storage/connect/libdoc.cpp:1111:15: error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers :info:build if ((xerr = xmlGetLastError())) :info:build ^~~~~~~~~~~~~~~~~ :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mariadb-10.4/mariadb-10.4/work/server-mariadb-10.4.27/storage/connect/libdoc.cpp:1116:15: error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers :info:build if ((xerr = xmlGetLastError())) :info:build ^~~~~~~~~~~~~~~~~ :info:build 2 warnings and 12 errors generated.
yes, there was an unfortunate API change with libxml2 2.12+.
Unfortunately it is going to be likely that a whole lot of things are now broken.
See for example:
comment:2 Changed 8 months ago by jmroot (Joshua Root)
Owner: | set to michaelld |
---|---|
Status: | new → assigned |
comment:3 Changed 8 months ago by kencu (Ken)
Port: | libxml2 added |
---|
comment:4 Changed 8 months ago by ryandesign (Ryan Carsten Schmidt)
Port: | mariadb mariadb-10.0 mariadb-10.1 mariadb-10.2 mariadb-10.3 mariadb-10.6 mariadb-10.7 mariadb-10.8 mariadb-10.9 mariadb-10.10 added; libxml2 removed |
---|---|
Summary: | Mariadb fails to build on MacOS Ventura/Sonoma → mariadb-10.*: fails to build with libxml2 2.12.x |
Adding all mariadb ports to the port field since it's likely all are affected. Removing libxml2 because I presume this is not a libxml2 bug but an intended change.
comment:5 Changed 8 months ago by ryandesign (Ryan Carsten Schmidt)
Summary: | mariadb-10.*: fails to build with libxml2 2.12.x → mariadb*: fails to build with libxml2 2.12.x |
---|
comment:6 follow-up: 10 Changed 8 months ago by blair (Blair Zajac)
Looking at the previous libxml2 2.11.5
the --with-legacy
configure flag already existed, so I'm guessing it wouldn't help in the 2.12.5
upgrade. Doing a recursive diff between 2.11.5
and 2.12.5
doesn't show any additional places where LIBXML_LEGACY_ENABLED
is used, although there could be new code added between an #ifdef LIBXML_LEGACY_ENABLED
and #endif
pair (I didn't check).
In include/libxml/xmlerror.h
the diff is this and it's not protected by LIBXML_LEGACY_ENABLED
so it seems all callbacks will need to do a patch similar to webkit2-gtk
's in [915fbf4e3d488321c05f7ff2123282979bb9af46/macports-ports]
@@ -855,7 +856,28 @@ * Signature of the function to use when there is an error and * the module handles the new error reporting mechanism. */ -typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error); +typedef void (*xmlStructuredErrorFunc) (void *userData, const xmlError *error); +
There's this upstream bug https://github.com/MariaDB/server/pull/2983 and PR: https://github.com/MariaDB/server/pull/2983 would could be pulled into MacPorts.
comment:7 Changed 8 months ago by kencu (Ken)
All ports that use libxml2 will likely be affected.
However many that is.
So that is why libxml2 was added here.
Eventually all the hundreds of ports that use libxml2 will have to individually adapt (there are currently 615 of them listed).
Yuk.
comment:8 Changed 8 months ago by kencu (Ken)
OK -- well clearly things are going to be widely broken for port rebuilds for a long, long time to come.
How many of those ports that use libxml2 use the changed error API time will tell.
I think -- I will roll back to libxml2 2.11.x and let the dust settle for a year or so.
comment:9 Changed 8 months ago by markuz (Marco Antonio Islas Cruz)
Cc: | markuz added |
---|
comment:10 Changed 7 months ago by barracuda156
There's this upstream bug https://github.com/MariaDB/server/pull/2983 and PR: https://github.com/MariaDB/server/pull/2983 would could be pulled into MacPorts.
I guess we just need to update the port, since it has been merged.
comment:11 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | hbsimon added |
---|
Has duplicate #69708.
comment:12 Changed 6 months ago by Kirkman (Josh Renaud)
I am new to MacPorts and trying to understand how to work around this issue until it is fixed. (It's preventing me from installing a bunch of key things). The ProblemHotlist doesn't mention the libxml2 issue, so that's no help.
*Is* there a way for users to work around it? Is there a way to install an older version, maybe?
comment:13 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | Kirkman added |
---|
If tickets are not already filed for the other "key things" that are not building (aside from mariadb* and the ports that depend on mariadb*) please file new tickets.
Users can install older ports following wiki:howto/InstallingOlderPort however what you're proposing is installing an older libxml2 prior to 2.12.x which will probably lead you to other problems since other ports have already been fixed to build with libxml2 2.12.x (but not necessarily pre-2.12.x libxml2 anymore).
The better solution is for someone to update the mariadb* ports to fixed versions where upstream has already fixed it (mariadb-10.5 needs to be updated to 10.5.25, for example) and backport the upstream fix to the earlier mariadb* ports that won't receive the upstream fix (mariadb-10.4 and earlier).
comment:14 Changed 4 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | Mikedafish added |
---|
Has duplicate #70448.
comment:15 Changed 3 months ago by jasimon9
I have oepned #70582 which has been closed as a duplicate of this ticket.
What is the plan for a workaround to this issue? Abandon mariadb from Macports?
comment:16 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | jasimon9 added |
---|
The ticket is assigned to the ports' maintainer. The hope is that the maintainer would update those ports that have updates and backport the fix to those that don't, but that hasn't happened. Anyone else can contribute these improvements by filing a pull request.
comment:17 Changed 3 months ago by jasimon9
Another idea: is there are version of mariadb that is known to install without issues?
comment:18 Changed 3 months ago by jmroot (Joshua Root)
I had a look at updating these and gave up before long because it became clear I didn't have the time to do it that day, as I suspect others have done before me. Unfortunately these ports are daunting even for experienced port authors. Just as one example, it looks like they could be simplified by using the official release tarballs instead of GitHub generated archives, but I don't know if the original author had a good reason for doing it that way.
comment:19 Changed 3 months ago by jmroot (Joshua Root)
comment:20 Changed 3 months ago by jmroot (Joshua Root)
So that's 10.11 updated, which is the latest LTS version we have in MacPorts. I might get to the others at some point, but no promises. Please feel more than welcome to beat me to it.
Michael, if there are any issues introduced by the update, please let me know.
comment:21 Changed 3 months ago by jmroot (Joshua Root)
comment:22 Changed 3 months ago by jmroot (Joshua Root)
comment:23 Changed 3 months ago by jmroot (Joshua Root)
comment:24 Changed 3 months ago by jasimon9
Unfortunately this install still fails for me. Is there something I need to do to "switch from the official release tarball"?
Here is what I still get:
sudo port install mariadb-10.6-server Password: ---> Computing dependencies for mariadb-10.6-server The following dependencies will be installed: mariadb-10.6 Continue? [Y/n]: Y ---> Fetching archive for mariadb-10.6 ---> Attempting to fetch mariadb-10.6-10.6.11_0.darwin_22.x86_64.tbz2 from http://mirror.fcix.net/macports/packages/mariadb-10.6 ---> Attempting to fetch mariadb-10.6-10.6.11_0.darwin_22.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/mariadb-10.6 ---> Attempting to fetch mariadb-10.6-10.6.11_0.darwin_22.x86_64.tbz2 from https://mirrors.mit.edu/macports/packages/mariadb-10.6 ---> Building mariadb-10.6 Error: Failed to build mariadb-10.6: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_mariadb-10.6/mariadb-10.6/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port mariadb-10.6-server failed iMac3:~ jas$
comment:25 Changed 3 months ago by jmroot (Joshua Root)
You're still installing mariadb 10.6.11, so you need to update your ports with port selfupdate
or port sync
. When your ports tree is updated you will be installing 10.6.19.
comment:26 Changed 3 months ago by jmroot (Joshua Root)
comment:27 Changed 3 months ago by jmroot (Joshua Root)
comment:28 Changed 3 months ago by jasimon9
mariadb-10.6 now builds!
I updated the ports tree. After the update, the rebuild was now looking for 10.6.19 as you can see below. Plus there was an interesting message at the start of the install about the portfile having changed:
sudo port install mariadb-10.6-server Portfile for mariadb-10.6-server changed since last build; discarding previous state. ---> Computing dependencies for mariadb-10.6-server The following dependencies will be installed: mariadb-10.6 Continue? [Y/n]: Y Portfile for mariadb-10.6 changed since last build; discarding previous state. ---> Fetching archive for mariadb-10.6 ---> Attempting to fetch mariadb-10.6-10.6.19_0.darwin_22.x86_64.tbz2 from https://packages.macports.org/mariadb-10.6
The build completed normally afterwards.
Thanks to the maintainers!
comment:29 Changed 3 months ago by amstilp (Adrienne Stilp)
mariadb-10.6 also builds for me after port selfupdate
. Thank you!
comment:30 Changed 3 months ago by jmroot (Joshua Root)
comment:31 Changed 3 months ago by jmroot (Joshua Root)
comment:32 Changed 3 months ago by jmroot (Joshua Root)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:33 Changed 3 months ago by jmroot (Joshua Root)
The remaining versions have been EOL for at least two years and should probably just be marked as obsolete.
comment:34 Changed 5 weeks ago by ryandesign (Ryan Carsten Schmidt)
The issue has been re-filed as #71062.
gzipped log file when trying to install