Opened 3 years ago

Last modified 16 months ago

#62027 closed defect

qt5-qtwebkit fails to build on Big Sur 11.1 with Apple silicon — at Version 14

Reported by: dfleck Owned by: kencu (Ken)
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: bigsur arm64 Cc: ctreleaven@…, jhoyt4
Port: qt5-qtwebkit

Description (last modified by ctreleaven (Craig Treleaven))

This bug is now apparently about qt5-qtwebkit failing to build on arm64. mythtv is only incidental at this point.

Change History (15)

comment:1 Changed 3 years ago by ctreleaven (Craig Treleaven)

AFAIK, you are the first person to attempt to build Myth 0.28 on Apple Silicon.

You could try adding arm64 to the supported_archs (line 26 of the Portfile). The build dependency on yasm will then be superfluous, I believe.

Are you looking to try running mythbackend on an M1 Mac? I'll be glad to offer what advice I can but I don't have such hardware myself.

comment:2 Changed 3 years ago by ctreleaven (Craig Treleaven)

Owner: set to ctreleaven
Status: newaccepted

comment:3 Changed 3 years ago by dfleck

Actually I *have* mythbackend (and mythweb) running on the M1. I installed a v28 app package I found somewhere. But I'd like to get it running "properly" as a service thru MacPorts (plus the webbackend server isn't working right with the app).

I'll try to modify the Portfile - but so far I've been flummoxed with updating the checksums.

comment:4 Changed 3 years ago by dfleck

Modifying the Portfiles as suggested results in a different error:

Error: Cannot install mythtv.28 for the arch 'arm64' because
Error: its dependency qt5-qtbase only supports the arch 'x86_64'.

comment:5 Changed 3 years ago by ctreleaven (Craig Treleaven)

Interesting. I would guess that you installed from the all-in-one installer and are therefore running Myth under Rosetta2 emulation. First report I've heard of that.

I'm not sure what the status is on qt5 on Apple silicon. I think it might be best to send a query to the macports-dev mailing list, copying the qt5 maintainers, and ask what the plan is to bring Qt up. I did notice that Qt6 was released recently. The indication was that Qt6 was not a major departure from Qt5 so maybe it won't be hard to add to MacPorts. OTOH, Qt is a massive, complicated suite of software and making it work in a MacPorts-context has been far from trivial.

Please feel free to contact me directly at my macports.org address if you'd like to discuss further.

Last edited 3 years ago by ctreleaven (Craig Treleaven) (previous) (diff)

comment:6 Changed 3 years ago by ILMostro (ILMostro)

Yeah, the same issue with qt5-base is the blocker for the current release of mythtv; version 0.31. I had brought it up in the IRC at the time. Actually, the specific package, as far as I could tell, was qt5-qtwebkit.

Last edited 3 years ago by ILMostro (ILMostro) (previous) (diff)

Changed 3 years ago by ILMostro (ILMostro)

Attachment: qt5-qtwebkit-main.log added

main.log from port install qt5-qtwebkit

comment:7 Changed 3 years ago by kencu (Ken)

I fixed most of qt5 to work on arm64, but qt5-qtwebkit is not fixed. It's a upstream issue, and I haven't heard when or if they plan on getting it fixed.

comment:8 Changed 3 years ago by ctreleaven (Craig Treleaven)

@ILMostro, what is your objective? If you are looking to install a full Myth system (front & backend), then 0.28 is not a great choice. It is no longer supported upstream and version 32 is going to be released in a few weeks/months.

However, AFAIK, qtwebkit is only used for plugins (like MythNews & MythBrowser). You could try deleting qtwebkit as a dependency and see if the build gets much further. Myth frontend, at least, does build and run on Android so it is conceivable that it could be made to build and run on Apple Silicon.

Also, I could not find a ticket or pull request regarding qt5-qtwebkit not building on arm64. Another ticket should be opened. @kencu, is there an upstream Qt ticket regarding building on arm64?

comment:9 Changed 3 years ago by jhoyt4

@ILMostro @kencu - it looks like the qtwebkit compile is failing where we had to patch recently in FastMalloc.cpp for Big Sur back in Nov/Dec.

The related patch is patch-qtwebkit-FastMalloc.diff

Basically, Apple changed from using the PAGE_SHIFT variable to I386_PGSHIFT for x86 and I believe PGSHIFT for ARM. Modding the patch to change PAGE_SHIFT to PGSHIT should fix the initial compile issue.

#if OS(DARWIN)
#    if CPU(X86_64)
#        define K_PAGE_SHIFT I386_PGSHIFT
#    else
#        define K_PAGE_SHIFT PGSHIFT
#    endif

The portfile is currently setup only to patch os.major > 20 so this should not hurt anyone else.

I've attached a new patch file. If this works, I'd be happy to make up a new PR.

I'd test myself - but unfortunately I don't have any computers with Apple Silicon.

Last edited 3 years ago by jhoyt4 (previous) (diff)

comment:10 Changed 3 years ago by jhoyt4

Cc: jhoyt4 added

comment:11 Changed 3 years ago by kencu (Ken)

nb #62139.

comment:12 Changed 3 years ago by kencu (Ken)

this is the one for qtwebengine.

<https://bugreports.qt.io/browse/QTBUG-85537>

It's been a couple of months since I worked on this, and qt5 has several different web-related packages...might have to check again to be certain exactly where each package got to in terms of build status.

comment:13 Changed 3 years ago by kencu (Ken)

Here are the qt5 ports we have installed on arm64 so far:

% port -v installed | grep qt5
  qt5 @5.15.2_0 (active) platform='darwin 20' archs='noarch' date='2020-12-20T02:51:37-0500'
  qt5-qt3d @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T02:42:11-0500'
  qt5-qtbase @5.15.2_2+openssl (active) platform='darwin 20' archs='arm64' date='2021-01-21T20:16:44-0500'
  qt5-qtconnectivity @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T02:50:52-0500'
  qt5-qtcreator @4.12.4_0 (active) platform='darwin 20' archs='arm64' date='2021-01-14T03:35:10-0500'
  qt5-qtdeclarative @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:19:58-0500'
  qt5-qtgamepad @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:34:47-0500'
  qt5-qtgraphicaleffects @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:24:01-0500'
  qt5-qtimageformats @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:24:17-0500'
  qt5-qtlocation @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:30:48-0500'
  qt5-qtmacextras @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:26:56-0500'
  qt5-qtmultimedia @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:33:48-0500'
  qt5-qtnetworkauth @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:33:56-0500'
  qt5-qtquickcontrols @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:27:38-0500'
  qt5-qtquickcontrols2 @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:25:55-0500'
  qt5-qtremoteobjects @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:34:17-0500'
  qt5-qtscript @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2021-01-06T11:00:04-0500'
  qt5-qtscxml @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:34:35-0500'
  qt5-qtsensors @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:26:31-0500'
  qt5-qtserialbus @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:32:41-0500'
  qt5-qtserialport @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:26:03-0500'
  qt5-qtspeech @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T02:51:02-0500'
  qt5-qtsvg @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:15:18-0500'
  qt5-qttools @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:23:23-0500'
  qt5-qttranslations @5.15.2_0 (active) platform='darwin 20' archs='noarch' date='2020-12-20T02:51:21-0500'
  qt5-qtwebchannel @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:26:50-0500'
  qt5-qtwebsockets @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:26:42-0500'
  qt5-qtxmlpatterns @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T01:32:22-0500'
  qt5-sqlite-plugin @5.15.2_0 (active) platform='darwin 20' archs='arm64' date='2020-12-20T02:51:36-0500'

And here's what the buildbot has made wrt to qt5-qtwebkit

<http://packages.macports.org/qt5-qtwebkit/>

comment:14 Changed 3 years ago by ctreleaven (Craig Treleaven)

Description: modified (diff)
Owner: changed from ctreleaven to kencu
Port: qt5-qtwebkit added; mythtv.28 removed
Status: acceptedassigned
Summary: mythtv.28 fails to build on Big Sur 11.1 with Apple siliconqt5-qtwebkit fails to build on Big Sur 11.1 with Apple silicon
Note: See TracTickets for help on using tickets.