Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

qt511.qtwebengine: fix on darwin #53848

Merged
merged 4 commits into from Jan 28, 2019

Conversation

veprbl
Copy link
Member

@veprbl veprbl commented Jan 12, 2019

Motivation for this change

QtWebEngine is broken on darwin.

Resolves: #36932

Things done
  • It builds on macOS
  • pyqt5 picks up PyQt5.QtWebEngine
  • qutebrowser opens google.com (needed some hacks to fix qutebrowser itself on darwin still)

cc @matthewbauer @knedlsepp

This is needed to facilitate build of qt5.qtwebengine on darwin
@veprbl
Copy link
Member Author

veprbl commented Jan 12, 2019

Forgot to commit couple important patches, now ok.

Co-Authored-By: Josef Kemetmüller <josef.kemetmueller@gmail.com>

namespace {

-// TODO(davidben): Remove this when we switch to building to the 10.13
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This patch looks a bit scary. What is it doing?

Copy link
Member Author

@veprbl veprbl Jan 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In short, this disables signing using "Certificate, Key, and Trust Services API" and makes it use CSSM API instead. If you look below, this branch, that I removed, is hidden behind a version check:

if (base::mac::IsAtLeastOS10_12()) {
  return /* bla using SecKey */;
}

return /* bla using CSSM */;

So I only drop an optional execution path.

There is a nice overview of the API's in http://www.arp.com/medias/13902065.pdf . From their explanation, I understood that CSDA (and CSSM) are more sophisticated API's produced by some open source standard group while "Certificate, Key, and Trust Services API" is what Apple wants us to use. They seem to allude that the latter API is just a wrapper around the former:

Where possible, you should use one of the following instead of using CDSA directly:

  • The Certificate, Key, and Trust Services API for general encryption, key management, and other tasks.

I suppose, the reason why CSSM is not the preferred API in chromium is because they want to maintain it in a future proof state. My best understanding is that this patch is harmless and we can drop it once 10.12 SDK lands.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok.

@veprbl veprbl added this to the 19.03 milestone Jan 26, 2019
# error: pointer to non-const type 'id' with no explicit ownership
# id** _kvcPropertyAccessors;
#
# TODO remove when new Apple SDK is in
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't whether ARC is used a property of a codebase, rather than of an SDK version?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment says that at very least some of the headers in our SDK don't compile when ARC is enabled.

Copy link
Member

@infinisil infinisil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I can also confirm that this builds on my mac (boy that took some time to finish though)

@infinisil infinisil merged commit ddcf01b into NixOS:master Jan 28, 2019
@veprbl veprbl added the 8.has: port to stable A PR already has a backport to the stable release. label Apr 8, 2019
@veprbl veprbl deleted the pr/qtwebengine_darwin_fix branch December 1, 2020 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: darwin Running or building packages on Darwin 6.topic: qt/kde 8.has: port to stable A PR already has a backport to the stable release. 10.rebuild-darwin: 501+ 10.rebuild-linux: 101-500
Projects
None yet
Development

Successfully merging this pull request may close these issues.

qtwebengine does not build on darwin
5 participants