Page MenuHomeFreeBSD

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

Authored by pkubaj on Oct 29 2019, 10:30 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Jul 2, 7:12 AM
Unknown Object (File)
Sun, Jun 30, 10:34 PM
Unknown Object (File)
Tue, Jun 25, 10:47 AM
Unknown Object (File)
Jun 19 2024, 9:08 AM
Unknown Object (File)
Jun 15 2024, 5:54 PM
Unknown Object (File)
Jun 12 2024, 11:29 PM
Unknown Object (File)
Jun 9 2024, 5:21 AM
Unknown Object (File)
Jun 8 2024, 4:29 AM
Subscribers
None

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
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 27422
Build 25664: arc lint + arc unit

Event Timeline

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]

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 :(

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

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

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

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