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

refactor: [gn] compile node with boringssl #13285

Merged
merged 1 commit into from Jun 19, 2018

Conversation

Projects
None yet
2 participants
@nornagon
Contributor

nornagon commented Jun 18, 2018

NB: this currently only affects the experimental GN build of Electron.

Instead of compiling node with openssl, use the boringssl library that's already built with chrome. There are a couple of reasons for this:

  1. It's not possible to build a single statically-linked binary that has both BoringSSL and OpenSSL compiled in, because their symbols conflict. So this makes it possible to ship a single static executable that has node.js, chromium and electron all in one.
  • this is an important prerequisite for the release build of Electron when building with GN. Having node.js (and thus v8) being linked into a separate shared library is a significant difficulty for the GN build system.
  1. It reduces the amount of code we ship (one SSL library instead of two).

It could potentially lead to incompatibilities with third-party modules, since BoringSSL and OpenSSL don't support identical feature sets, but I don't know of any issues specifically. See https://boringssl.googlesource.com/boringssl/+/HEAD/PORTING.md for a (non-exhaustive) list of differences.

Depends on electron/node#39

@nornagon nornagon requested a review from zcbenz Jun 18, 2018

@nornagon nornagon requested a review from electron/reviewers as a code owner Jun 18, 2018

@ckerr

ckerr approved these changes Jun 19, 2018

@ckerr ckerr merged commit c598272 into electron:master Jun 19, 2018

10 checks passed

WIP ready for review
Details
ci/circleci: electron-linux-arm Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-arm-test Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-arm64 Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-arm64-test Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-ia32 Your tests passed on CircleCI!
Details
ci/circleci: electron-linux-x64 Your tests passed on CircleCI!
Details
ci/circleci: electron-mas-x64 Your tests passed on CircleCI!
Details
ci/circleci: electron-osx-x64 Your tests passed on CircleCI!
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details

@nornagon nornagon deleted the nornagon:node-boringssl branch Jun 20, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment