Page MenuHomeFreeBSD

www/qt5-webengine: fix build on powerpc64 (elfv2 only)
ClosedPublic

Authored by pkubaj on Oct 29 2019, 10:30 PM.

Details

Summary

Integrate the following patches from our Linux friends:
https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/qt5/patches/0089-webengine-ppc64.patch
https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/qt5/patches/0090-chromium-ppc64le.patch
https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/qt5/patches/0091-chromium-ppc64-musl.patch
https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/qt5/patches/0092-chromium-ppc64-be.patch
https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/qt5/patches/0093-chromium-v8-elfv2.patch

0091-chromium-ppc64-musl.patch is called such that it seems it's only for musl, but it has fixes for all non-glibc libc's.

All those patches were modified, so that we don't carry linux-only patches. I also had to add some things.

Since we use WebEngine's ICU we also need to appriopriately change pkg-plist.

According to the information I got, V8 uses features that are only available on POWER6 and above, so this won't work on Macs.

I have tested that it works on my Talos.

Test Plan

Run some ports that uses WebEngine.

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

pkubaj created this revision.Oct 29 2019, 10:30 PM

Unfortunately even with all this I still get a stage error:

pkg-static: Unable to access file /wrkdirs/usr/ports/www/qt5-webengine/work/stage/usr/local/lib/qt5/bin/qwebengine_convert_dict:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/www/qt5-webengine/work/stage/usr/local/include/qt5/QtWebEngine/5.13.0/QtWebEngine/private/qquickwebengineaction_p.h:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/www/qt5-webengine/work/stage/usr/local/include/qt5/QtWebEngine/5.13.0/QtWebEngine/private/qquickwebengineaction_p_p.h:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/www/qt5-webengine/work/stage/usr/local/include/qt5/QtWebEngine/5.13.0/QtWebEngine/private/qquickwebenginecertificateerror_p.h:No such file or directory
[and so on, for ~200 more lines]

pkubaj added a comment.Nov 9 2019, 1:04 PM

Unfortunately even with all this I still get a stage error:
pkg-static: Unable to access file /wrkdirs/usr/ports/www/qt5-webengine/work/stage/usr/local/lib/qt5/bin/qwebengine_convert_dict:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/www/qt5-webengine/work/stage/usr/local/include/qt5/QtWebEngine/5.13.0/QtWebEngine/private/qquickwebengineaction_p.h:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/www/qt5-webengine/work/stage/usr/local/include/qt5/QtWebEngine/5.13.0/QtWebEngine/private/qquickwebengineaction_p_p.h:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/www/qt5-webengine/work/stage/usr/local/include/qt5/QtWebEngine/5.13.0/QtWebEngine/private/qquickwebenginecertificateerror_p.h:No such file or directory
[and so on, for ~200 more lines]

Are you building on ELFv2? Can you attach Poudriere log?

In the meantime we already have 5.13.2 -- you should probably reabase.

I'm a bit scared by the amount of further patches -- it will likely mean that on every upgrade of the port at first only amd64 will surely work, and ppc support will likely get broken often :(

pkubaj added a comment.Nov 9 2019, 8:41 PM

I now confirmed that WebEngine works on powerpc64. I can start Otter Browser.

In the meantime we already have 5.13.2 -- you should probably reabase.

I already built 5.13.2 - there are no problems with patching and building. The patches posted here work.

I'm a bit scared by the amount of further patches -- it will likely mean that on every upgrade of the port at first only amd64 will surely work, and ppc support will likely get broken often :(

We will probably be able to take patches from Linux, just need to make them suitable for FreeBSD. It takes some time, but it's not like writing them from scratch. Linux/ppc64 guys also want Chromium and WebEngine.

This revision is now accepted and ready to land.Nov 9 2019, 8:46 PM
pkubaj updated this revision to Diff 64134.Nov 9 2019, 11:06 PM

Revert node.py patch. Our current approach works fine.
Use better approach for installing icudtb.
Merge old patch for aarch64 with the new one for powerpc64 (previously I removed the aarch64 part).

This revision now requires review to proceed.Nov 9 2019, 11:06 PM
pkubaj updated this revision to Diff 64135.Nov 9 2019, 11:07 PM

Also move .if in post-patch to not create empty target.

pkubaj edited the summary of this revision. (Show Details)Fri, Nov 22, 2:28 PM
pkubaj edited the test plan for this revision. (Show Details)
This revision was not accepted when it landed; it landed in state Needs Review.Sat, Nov 23, 5:30 PM
This revision was automatically updated to reflect the committed changes.