Opened 4 months ago

Closed 4 months ago

Last modified 4 months ago

#73026 closed defect (fixed)

qt5-qtwebkit @5.9.2_9 fails to build on macOS 26/arm64

Reported by: jaredwsmith (Jared Smith) Owned by: reneeotten (Renee Otten)
Priority: Normal Milestone:
Component: ports Version: 2.11.5
Keywords: arm64 Cc: Dave-Allured (Dave Allured), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: qt5-qtwebkit

Description

On macOS 26.0 on Apple Silicon, qt5-qtwebkit fails to build. All ports up to date and cleaned.

Here's the relevant portion of the build log that seems to point to the trouble:

:info:build Undefined symbols for architecture arm64:
:info:build   "_xmlByteConsumed", referenced from:
:info:build       WebCore::XMLDocumentParser::appendFragmentSource(WTF::String const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlCreateMemoryParserCtxt", referenced from:
:info:build       WebCore::XMLParserContext::createMemoryParser(_xmlSAXHandler*, void*, WTF::CString const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlCreatePushParserCtxt", referenced from:
:info:build       WebCore::XMLParserContext::createStringParser(_xmlSAXHandler*, void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlCtxtGetLastError", referenced from:
:info:build       WebCore::XMLDocumentParser::appendFragmentSource(WTF::String const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlCtxtUseOptions", referenced from:
:info:build       WebCore::XMLParserContext::createStringParser(_xmlSAXHandler*, void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::XMLParserContext::createMemoryParser(_xmlSAXHandler*, void*, WTF::CString const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlDictLookup", referenced from:
:info:build       WebCore::XMLParserContext::createMemoryParser(_xmlSAXHandler*, void*, WTF::CString const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::XMLParserContext::createMemoryParser(_xmlSAXHandler*, void*, WTF::CString const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::XMLParserContext::createMemoryParser(_xmlSAXHandler*, void*, WTF::CString const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlFreeDoc", referenced from:
:info:build       WebCore::XMLParserContext::~XMLParserContext() in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlFreeParserCtxt", referenced from:
:info:build       WebCore::XMLParserContext::~XMLParserContext() in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlGetDocEntity", referenced from:
:info:build       WebCore::getEntityHandler(void*, unsigned char const*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlGetPredefinedEntity", referenced from:
:info:build       WebCore::getEntityHandler(void*, unsigned char const*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlInitParser", referenced from:
:info:build       WebCore::XMLParserContext::createStringParser(_xmlSAXHandler*, void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::XMLParserContext::createMemoryParser(_xmlSAXHandler*, void*, WTF::CString const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlParseChunk", referenced from:
:info:build       WebCore::XMLDocumentParser::doWrite(WTF::String const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::XMLDocumentParser::doEnd() in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::parseAttributes(WTF::String const&, bool&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlParseContent", referenced from:
:info:build       WebCore::XMLDocumentParser::appendFragmentSource(WTF::String const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlRegisterInputCallbacks", referenced from:
:info:build       WebCore::XMLParserContext::createStringParser(_xmlSAXHandler*, void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::XMLParserContext::createMemoryParser(_xmlSAXHandler*, void*, WTF::CString const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlRegisterOutputCallbacks", referenced from:
:info:build       WebCore::XMLParserContext::createStringParser(_xmlSAXHandler*, void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::XMLParserContext::createMemoryParser(_xmlSAXHandler*, void*, WTF::CString const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlSAX2EndDocument", referenced from:
:info:build       WebCore::endDocumentHandler(void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlSAX2EntityDecl", referenced from:
:info:build       WebCore::entityDeclarationHandler(void*, unsigned char const*, int, unsigned char const*, unsigned char const*, unsigned char*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlSAX2InternalSubset", referenced from:
:info:build       WebCore::internalSubsetHandler(void*, unsigned char const*, unsigned char const*, unsigned char const*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlSAX2StartDocument", referenced from:
:info:build       WebCore::startDocumentHandler(void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlStopParser", referenced from:
:info:build       WebCore::XMLDocumentParser::stopParsing() in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlStrdup", referenced from:
:info:build       WebCore::PendingCallbacks::appendStartElementNSCallback(unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, int, unsigned char const**) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendStartElementNSCallback(unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, int, unsigned char const**) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendStartElementNSCallback(unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, int, unsigned char const**) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendStartElementNSCallback(unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, int, unsigned char const**) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendStartElementNSCallback(unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, int, unsigned char const**) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendErrorCallback(WebCore::XMLErrors::ErrorType, unsigned char const*, WTF::OrdinalNumber, WTF::OrdinalNumber) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendProcessingInstructionCallback(unsigned char const*, unsigned char const*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendProcessingInstructionCallback(unsigned char const*, unsigned char const*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       ...
:info:build   "_xmlStrndup", referenced from:
:info:build       WebCore::PendingCallbacks::appendStartElementNSCallback(unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, int, unsigned char const**) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendCharactersCallback(unsigned char const*, int) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::PendingCallbacks::appendCDATABlockCallback(unsigned char const*, int) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build   "_xmlSwitchEncoding", referenced from:
:info:build       WebCore::XMLParserContext::createStringParser(_xmlSAXHandler*, void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::XMLDocumentParser::doWrite(WTF::String const&) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build       WebCore::startDocumentHandler(void*) in libWebCore.a[706](XMLDocumentParserLibxml2.o)
:info:build ld: symbol(s) not found for architecture arm64
:info:build clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Full build log attached.

Attachments (1)

main.log.zip (6.0 MB) - added by jaredwsmith (Jared Smith) 4 months ago.
Zipped main.log

Change History (12)

Changed 4 months ago by jaredwsmith (Jared Smith)

Attachment: main.log.zip added

Zipped main.log

comment:1 Changed 4 months ago by Dave-Allured (Dave Allured)

Cc: Dave-Allured added

comment:2 Changed 4 months ago by Dave-Allured (Dave Allured)

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

Cc: MarcusCalhoun-Lopez added
Owner: set to reneeotten
Status: newassigned

comment:4 in reply to:  2 ; Changed 4 months ago by reneeotten (Renee Otten)

Replying to Dave-Allured:

Please see #73008 for workaround.

Also: wiki:TahoeProblems#MetaltoolchainisnolongerbundledinXcode

Dave-Allured: why do you think this is related to the Metal toolchain? I have looked briefly at the errors yesterday but couldn't figure out where they originate from. Also, I -of course- did install the Metal toolchain locally but that didn't make any difference...

jaredwsmith: sorry for the trouble, but webkit has been deprecated for quite some time now and nothing has changed to this subport for the last 8 years. So if it fails now (it does on Intel as well) then it's likely due to some dependencies and/or changes in the compiler toolchain on Tahoe. I haven't been able to figure out the cause and/or solution.

comment:5 in reply to:  4 Changed 4 months ago by Dave-Allured (Dave Allured)

Replying to reneeotten:

Dave-Allured: why do you think this is related to the Metal toolchain? I have looked briefly at the errors yesterday but couldn't figure out where they originate from. Also, I -of course- did install the Metal toolchain locally but that didn't make any difference...

reneeotten: I was mistaken, sorry. I made a hasty call based on the Tahoe problem list and similarity between port names qt5-qtwebkit and qt6-qtwebengine. I did not carefully compare the symptoms. Sorry for the noise.

I will take a closer look at the error messages on this ticket, and see if I can come up with something helpful.

comment:6 Changed 4 months ago by reneeotten (Renee Otten)

To be honest I'd consider dropping the qt5-qtwebkit subport completely. The code is so old and no longer supported; every actively developed software package should have moved away from using it by now in favor of qt5-qtwebengine.

I know there are some dependents still in MacPorts

fontmatrix
goldendict
kchmviewer
libopenshot
metview
mythtv-core.28
owncloud-client
qgis3
qgis3-ltr
recoll
smtube
trojita
wkhtmltopdf

, but the number is very limited so it might be worthwile to see if we can get rid of it.

What is your specific use-case?

comment:7 Changed 4 months ago by Dave-Allured (Dave Allured)

The undefined symbols above are from libxml2. So this looks like failure to correctly link with libxml2. That is all I have so far.

comment:8 in reply to:  7 Changed 4 months ago by reneeotten (Renee Otten)

Replying to Dave-Allured:

The undefined symbols above are from libxml2. So this looks like failure to correctly link with libxml2. That is all I have so far.

Yeah, that's the obvious part from a quick Google. I'm trying to resolve that, but building takes a while so it's not very fast ;) It seems that the build isn't adding -lxml2 so that's what I am doing now. However, none of this can be (easily) explained as it all worked on earlier OS versions. We'll have to wait and see...

comment:9 Changed 4 months ago by reneeotten (Renee Otten)

Hah... that actually worked ;) I'll push the change shortly!

comment:10 Changed 4 months ago by reneeotten (Renee Otten)

Resolution: fixed
Status: assignedclosed

In d4033531a4555761e674df8d34a4f31036e06f1d/macports-ports (master):

qt5-qtwebkit: fix build/linking to lxml2

Closes: #73026

comment:11 Changed 4 months ago by Dave-Allured (Dave Allured)

Yes I had independently just found the missing -lxml2. Thanks for the quick fix! I am still wondering why Tahoe OS would cause that library to be dropped from a link command that works fine for several other OS versions.

Note: See TracTickets for help on using tickets.