Date: Thursday, February 22, 2018 @ 16:27:56 Author: tensor5 Revision: 297084
archrelease: copy trunk to community-staging-x86_64 Added: electron/repos/community-staging-x86_64/ electron/repos/community-staging-x86_64/PKGBUILD (from rev 297083, electron/trunk/PKGBUILD) electron/repos/community-staging-x86_64/allow-i686.patch (from rev 297083, electron/trunk/allow-i686.patch) electron/repos/community-staging-x86_64/breakpad-glibc2.26.patch (from rev 297083, electron/trunk/breakpad-glibc2.26.patch) electron/repos/community-staging-x86_64/chromium-dmabuf.patch (from rev 297083, electron/trunk/chromium-dmabuf.patch) electron/repos/community-staging-x86_64/chromium-include-functional.patch (from rev 297083, electron/trunk/chromium-include-functional.patch) electron/repos/community-staging-x86_64/chromium-use-system-ffmpeg.patch (from rev 297083, electron/trunk/chromium-use-system-ffmpeg.patch) electron/repos/community-staging-x86_64/chromium-use-system-minizip.patch (from rev 297083, electron/trunk/chromium-use-system-minizip.patch) electron/repos/community-staging-x86_64/chromium-use-system-re2.patch (from rev 297083, electron/trunk/chromium-use-system-re2.patch) electron/repos/community-staging-x86_64/default_app-icon.patch (from rev 297083, electron/trunk/default_app-icon.patch) electron/repos/community-staging-x86_64/dont-bootstrap-libchromiumcontent.patch (from rev 297083, electron/trunk/dont-bootstrap-libchromiumcontent.patch) electron/repos/community-staging-x86_64/dont-update-submodules.patch (from rev 297083, electron/trunk/dont-update-submodules.patch) electron/repos/community-staging-x86_64/dont-use-sysroot.patch (from rev 297083, electron/trunk/dont-use-sysroot.patch) electron/repos/community-staging-x86_64/electron.desktop (from rev 297083, electron/trunk/electron.desktop) electron/repos/community-staging-x86_64/gtk3-menu-bar.patch (from rev 297083, electron/trunk/gtk3-menu-bar.patch) electron/repos/community-staging-x86_64/gtk3-message-box.patch (from rev 297083, electron/trunk/gtk3-message-box.patch) electron/repos/community-staging-x86_64/gtk3-warnings.patch (from rev 297083, electron/trunk/gtk3-warnings.patch) electron/repos/community-staging-x86_64/gyp-no-rpath.patch (from rev 297083, electron/trunk/gyp-no-rpath.patch) electron/repos/community-staging-x86_64/libchromiumcontent-no-depot_tools.patch (from rev 297083, electron/trunk/libchromiumcontent-no-depot_tools.patch) electron/repos/community-staging-x86_64/libchromiumcontent-settings.patch (from rev 297083, electron/trunk/libchromiumcontent-settings.patch) electron/repos/community-staging-x86_64/libchromiumcontent-sort-filenames.patch (from rev 297083, electron/trunk/libchromiumcontent-sort-filenames.patch) electron/repos/community-staging-x86_64/libchromiumcontent-static-library-only.patch (from rev 297083, electron/trunk/libchromiumcontent-static-library-only.patch) electron/repos/community-staging-x86_64/libchromiumcontent-use-system-tools.patch (from rev 297083, electron/trunk/libchromiumcontent-use-system-tools.patch) electron/repos/community-staging-x86_64/no-whole-archive.patch (from rev 297083, electron/trunk/no-whole-archive.patch) electron/repos/community-staging-x86_64/use-system-ffmpeg.patch (from rev 297083, electron/trunk/use-system-ffmpeg.patch) electron/repos/community-staging-x86_64/use-system-libraries-in-node.patch (from rev 297083, electron/trunk/use-system-libraries-in-node.patch) electron/repos/community-staging-x86_64/use-system-ninja.patch (from rev 297083, electron/trunk/use-system-ninja.patch) ----------------------------------------------+ PKGBUILD | 278 +++++++++++++++++++++++++ allow-i686.patch | 14 + breakpad-glibc2.26.patch | 208 ++++++++++++++++++ chromium-dmabuf.patch | 86 +++++++ chromium-include-functional.patch | 10 chromium-use-system-ffmpeg.patch | 43 +++ chromium-use-system-minizip.patch | 14 + chromium-use-system-re2.patch | 10 default_app-icon.patch | 22 + dont-bootstrap-libchromiumcontent.patch | 13 + dont-update-submodules.patch | 11 dont-use-sysroot.patch | 27 ++ electron.desktop | 7 gtk3-menu-bar.patch | 91 ++++++++ gtk3-message-box.patch | 11 gtk3-warnings.patch | 65 +++++ gyp-no-rpath.patch | 12 + libchromiumcontent-no-depot_tools.patch | 30 ++ libchromiumcontent-settings.patch | 69 ++++++ libchromiumcontent-sort-filenames.patch | 32 ++ libchromiumcontent-static-library-only.patch | 54 ++++ libchromiumcontent-use-system-tools.patch | 55 ++++ no-whole-archive.patch | 22 + use-system-ffmpeg.patch | 21 + use-system-libraries-in-node.patch | 31 ++ use-system-ninja.patch | 11 26 files changed, 1247 insertions(+) Copied: electron/repos/community-staging-x86_64/PKGBUILD (from rev 297083, electron/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,278 @@ +# $Id$ +# Maintainer: Nicola Squartini <tens...@gmail.com> + +_chromiumver=59.0.3071.115 +_freetype_rev=5a3490e054bda8a318ebde482 +pkgname=electron +pkgver=1.8.2 +pkgrel=1 +pkgdesc='Build cross platform desktop apps with web technologies' +arch=('x86_64') +url='http://electron.atom.io/' +license=('MIT' 'custom') +depends=('c-ares' 'ffmpeg' 'gtk3' 'http-parser' 'libevent' 'libxss' 'minizip' + 'nss' 're2' 'snappy') +makedepends=('clang' 'gconf' 'git' 'gperf' 'gtk2' 'harfbuzz-icu' 'jsoncpp' + 'libexif' 'libgnome-keyring' 'libnotify' 'llvm' 'ninja' 'npm' + 'pciutils' 'python2' 'wget' 'yasm') +optdepends=('gvfs: file deletion support (gvfs-trash)' + 'kde-cli-tools: file deletion support (kioclient5)' + 'kdebase-runtime: file deletion support (kioclient)' + 'trash-cli: file deletion support (trash-put)' + "xdg-utils: open URLs with desktop's default (xdg-email, xdg-open)") +source=("git+https://github.com/electron/electron.git#tag=v${pkgver}" + 'git+https://github.com/boto/boto.git' + 'breakpad::git+https://github.com/electron/chromium-breakpad.git' + 'git+https://chromium.googlesource.com/chromium/src/tools/grit.git' + 'git+https://github.com/electron/gyp.git' + "git+https://github.com/electron/libchromiumcontent.git" + 'native_mate::git+https://github.com/electron/native-mate.git' + 'git+https://github.com/electron/node.git' + 'pdf_viewer::git+https://github.com/electron/pdf-viewer.git' + 'git+https://github.com/kennethreitz/requests.git' + 'google-breakpad::git+https://chromium.googlesource.com/breakpad/breakpad/src' + "chromium-freetype2::git+https://chromium.googlesource.com/chromium/src/third_party/freetype2#commit=${_freetype_rev}" + "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${_chromiumver}.tar.xz" + 'electron.desktop' + 'default_app-icon.patch' + 'dont-bootstrap-libchromiumcontent.patch' + 'dont-update-submodules.patch' + 'dont-use-sysroot.patch' + 'gtk3-menu-bar.patch' + 'gtk3-message-box.patch' + 'gtk3-warnings.patch' + 'no-whole-archive.patch' + 'use-system-libraries-in-node.patch' + 'use-system-ninja.patch' + 'use-system-ffmpeg.patch' + 'breakpad-glibc2.26.patch' + 'gyp-no-rpath.patch' + 'libchromiumcontent-no-depot_tools.patch' + 'libchromiumcontent-settings.patch' + 'libchromiumcontent-sort-filenames.patch' + 'libchromiumcontent-static-library-only.patch' + 'libchromiumcontent-use-system-tools.patch' + 'chromium-dmabuf.patch' + 'chromium-include-functional.patch' + 'chromium-use-system-ffmpeg.patch' + 'chromium-use-system-minizip.patch' + 'chromium-use-system-re2.patch' + ) +noextract=("chromium-${_chromiumver}.tar.xz") +sha512sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'f30d54dedd43ba11321db1bcd443bb44a550ffca24ebb579727b98a15b6a3f6f598f20f0ef0889eab6820e6faacba0aa567927fd36d5ed0e61d7bd4f760e9993' + '613317b8c63efb0ddfe9112b56aa9714b536082144c0903d5b97351c3396b3c9eedeb44b6da72b85cbfd1bdd16cba30c512ac93c8ca6ffb04cad283ef29958b2' + 'a9b4d25987171c170ad2c6467c45d1f27c6dfba71c4d981564f6d0a683acd54c17e415314c35a44560ab6428a2ff98321caec0d2a07a9c69bddd580c42f6eb48' + 'b002bb96d38875876d09ad5ceb76843b306031c470ba24aace6cbc5b8a22774f44b5c0e4a99bf807737e25f57254d14865934694114a9f4551453cc6c560063a' + '22d2d3605a49a72cf7e12e4f1cdadb6e327a7487eed47eeb04a4213cf6dcc73c47d93cdea85a767a11181debc37e952f5e4685f9fae1debd4a1a1a10ac188e8c' + '8661ceff63a7b0140e811d699bb5e37ac9ceeb2def9dc47166c54ab6c225157efdac7226d9a305d2bf50e38c53f2a51a15dcdc25e9e2be86002693ada9d32c9d' + '62963c4dbf86624f370aad1ee42d43b7e4f6a0f719d906959ed642b1c0ca9ba397a8ea3923e6c6a4acc38bfb2187642791148dd528bb3b4ddc79f039fa6d8fa5' + '4eeb3a757bcf268b9bc7d16ca1efa9fa96d1aa55827766e1ec88d967946412688f4ab88a0ee3fb0870f32fa6ce4dd5cfe92c27a55c86d489e04c5c297d30e6bc' + 'd6dfadb1c30e0a2f234dedd09a79c4af96aaef976146fdb95989edc6bd019d6e52e127fc9fc119c17e4d3321052f49877c728c52cd2e8d3ca41165c5155b40d3' + '5c29c2a1c8128e85619fb84f1b5db12ff7446d72d14a25367f32d9370706a7b9ad9a53dc1d2e36df3f0d155d555cfa8586026508e83e6be7968a44d7144994df' + 'bee177ebb768d14d65de9172b9eecd2d738b312932c33ef45422cd8fec3448916236ecedd15a733c544144c2f0a3887c084bea9c5d61e176de4839ea28148277' + 'b4a42f274b88f9f97fa409a6c95b0f9896bc86aa342ee24cfc029e4f640c5badf258932eabd1d451571339cc8733796f5770e0b979b7deda5b5ae09deb2e85c8' + 'c921239b239ff5d7f79da4d3a12bae136cca36f95cd44e9278dc3e7647a8c153e1a70100d6e5e9d815a94b9da7a4131414bed98fb6db4b0c964a5fdca2279e0c' + '2dd594a07f8ce62a7706a0365d764ab3ee3cc2d050d6ae4460db3152269e84f43516438a4f48f47fc54fe758a70c462baed6b7defa8b2bd277e67cb1bae8da12' + 'fef435fcae0fcfc5ed7fe66bcdad24565a87493ff133422fa54756ee1c1335d4bfdae7e782d3f72fcd5c0e6c337b7a30fe7fb36a02a3fea1a1d509244d01d636' + '03676f682cd2db47aaf53c7e8221c3d19e20d7768e9b6a7cdb2da80674f220c293164ee1ca094b0c494d82cf1ba0e178ed66f41a6af28d266a50a758f95d6185' + '755714719d1acff42240465d64be0cbad987a0edddf5e57e21d8ff373550ebf779de7c3207a309269317f30b929c318828cc9d5da59b9757a4beb449c3c7e688' + '8da75b16f3fc39e828b94fe9bf013a2fd180a81a9a34a8511a99e62e8d2a714ced24d94ef643561e0c88c27868d8eaa643e19003cbfa293451fc15dd75f5801f' + '9bd56c6dba41ae08cad2435f229bcab7218f82be4a33dbf8dbf7204d839fbf0ba505b8444d3d17083d3260b597e694ead720c5aef9060a21917c3c844ba4ef28' + '901b07a90b1576f0aa4f2438ed08a0e85c7a64b3a4c95645f9e3cbd3cf265e395feb43e7969540c39e7dea3b24e78c59a9d88c9b4e5262816cd89e9543068c98' + 'acf6a43e89a49fb5d21fa165fe3a6b6a73b766fec05f952d11f48840ccb7c6640c1f946d87fb9b700f330a4eeffbd05346cc97def3de892b700439cad2a8e7bd' + '09a910f14c4466a74638af0505dbdbbf586813b0a20506ac15ae375037a1f06f82fea4045350f1e54357dd41fb721061c7cc2f0eea2e3a0439a79466db3875ea' + '39309580c96220ae503ecd811e1f4c593fea028804d3ba4026a83c0928b941a0ca851b6d76ee289ee48671eb0bd2187c81f26495c6ca92ce6a96baf3c9464274' + 'eace29bd99f7167ac2e5b7499560ec7e6c205eeee8fd0adef8cc7de3cef5058f9852dd2cc20946d637ed479d25b270c35d52de6f104f41000faa36dc018f63aa' + '5552e8918462f6c3a4e1baef3c22b57d70c732766945ea0b39f63df7d7b8fca9646f1f9b28b0528fa586799842c949298fc97e1041875da0ca1aacff046f6c9b') + +_system_libs=('ffmpeg' + 'flac' + 'harfbuzz-ng' +# 'icu' + 'libevent' + 'libjpeg' + 'libpng' +# 'libvpx' + 'libwebp' +# 'libxml' +# 'libxslt' + 're2' + 'snappy' + 'yasm' + 'zlib' + ) + +prepare() { + cd "${srcdir}"/electron + + patch -Np1 -i "${srcdir}"/default_app-icon.patch # Icon from .desktop file + patch -Np1 -i "${srcdir}"/gtk3-menu-bar.patch + patch -Np1 -i "${srcdir}"/gtk3-message-box.patch + patch -Np1 -i "${srcdir}"/gtk3-warnings.patch + patch -Np1 -i "${srcdir}"/use-system-libraries-in-node.patch + patch -Np1 -i "${srcdir}"/use-system-ninja.patch + patch -Np1 -i "${srcdir}"/use-system-ffmpeg.patch + patch -Np1 -i "${srcdir}"/dont-update-submodules.patch + patch -Np1 -i "${srcdir}"/dont-use-sysroot.patch + patch -Np1 -i "${srcdir}"/dont-bootstrap-libchromiumcontent.patch + patch -Np1 -i "${srcdir}"/no-whole-archive.patch + + # Add extra libraries for unbundling + sed -e "s/'-lexpat',/'-lexpat', '<\!@(pkg-config --libs-only-l libavcodec libavformat libavutil libevent flac harfbuzz-icu jsoncpp minizip libpng libpulse libwebpdemux)', '-ljpeg', '-lre2', '-lsnappy', '-latomic',/" \ + -e 's/gtk+-2\.0/gtk+-3.0/' \ + -i brightray/brightray.gyp + + mkdir -p "${srcdir}"/python2-path + ln -sf /usr/bin/python2 "${srcdir}/python2-path/python" + + for m in boto breakpad gyp libchromiumcontent native_mate node pdf_viewer requests; do + git submodule init vendor/${m} + git config submodule.vendor/${m}.url "${srcdir}/${m}" + done + git submodule update + + cd "${srcdir}"/electron/vendor/pdf_viewer + git submodule init vendor/grit + git config submodule.vendor/grit.url "${srcdir}/grit" + git submodule update + + cd "${srcdir}"/electron/vendor/breakpad + git submodule init src + git config submodule.src.url "${srcdir}"/google-breakpad + git submodule update + patch -Np1 -i "${srcdir}"/breakpad-glibc2.26.patch + + cd "${srcdir}"/electron/vendor/gyp + # Remove a useless $ORIGIN/lib/ rpath from the electron binary + patch -Np1 -i "${srcdir}"/gyp-no-rpath.patch + + cd "${srcdir}"/electron/vendor/libchromiumcontent + patch -Np1 -i "${srcdir}"/libchromiumcontent-no-depot_tools.patch + patch -Np1 -i "${srcdir}"/libchromiumcontent-settings.patch + patch -Np1 -i "${srcdir}"/libchromiumcontent-sort-filenames.patch # deterministic build + patch -Np1 -i "${srcdir}"/libchromiumcontent-use-system-tools.patch + patch -Np1 -i "${srcdir}"/libchromiumcontent-static-library-only.patch + rm patches/third_party/ffmpeg/001-build_gn.patch # Use system ffmpeg + echo 'Extracting chromium source...' + tar -xJf "${srcdir}"/chromium-${_chromiumver}.tar.xz + mv chromium-${_chromiumver} src + cd src + patch -Np1 -i "${srcdir}"/chromium-dmabuf.patch + patch -Np1 -i "${srcdir}"/chromium-include-functional.patch + patch -Np1 -i "${srcdir}"/chromium-use-system-ffmpeg.patch + patch -Np1 -i "${srcdir}"/chromium-use-system-minizip.patch + patch -Np1 -i "${srcdir}"/chromium-use-system-re2.patch + + for lib in "${_system_libs[@]}" libjpeg_turbo; do + find -type f -path "*third_party/${lib}/*" \ + \! -path "*third_party/${lib}/chromium/*" \ + \! -path "*third_party/${lib}/google/*" \ + \! -path "*base/third_party/icu/*" \ + \! -path "*base/third_party/libevent/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete + done + python2 build/linux/unbundle/replace_gn_files.py --system-libraries "${_system_libs[@]}" + + # Create sysmlink to system Node.js + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin + + # Fixes from the chromium package + mv "${srcdir}/chromium-freetype2" third_party/freetype/src +} + +build() { + export PATH="${srcdir}/python2-path:${PATH}" + + # Build GN + cd "${srcdir}/electron/vendor/libchromiumcontent/src" + gn_flags=( + 'clang_base_path="/usr"' + 'clang_use_chrome_plugins=false' + 'treat_warnings_as_errors=false' + 'use_sysroot=false' + ) + python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${gn_flags[*]}" + # libevent not needed anymore + find -type f -path "*base/third_party/libevent/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete + + cd "${srcdir}"/electron + LDFLAGS="${LDFLAGS} -Wl,-z,noexecstack" + script/bootstrap.py --verbose \ + --clang_dir=/usr \ + --build_release_libcc + script/build.py -c Release +} + +package() { + cd "${srcdir}"/electron + + _cc="${srcdir}"/electron/vendor/libchromiumcontent/dist/main + + install -d -m755 "${pkgdir}"/usr/share/licenses/electron + install -m644 LICENSE "${_cc}"/LICENSES.chromium.html \ + "${pkgdir}"/usr/share/licenses/electron + for lib in native_mate node; do + install -m644 vendor/${lib}/LICENSE \ + "${pkgdir}"/usr/share/licenses/electron/LICENSE-${lib} + done + install -m644 vendor/libchromiumcontent/src/LICENSE \ + "${pkgdir}"/usr/share/licenses/electron/LICENSE-chromium + + cd out/R + install -d -m755 "${pkgdir}"/usr/lib/electron + install -m644 blink_image_resources_200_percent.pak \ + content_resources_200_percent.pak content_shell.pak icudtl.dat \ + natives_blob.bin \ + pdf_viewer_resources.pak \ + snapshot_blob.bin \ + ui_resources_200_percent.pak \ + views_resources_200_percent.pak \ + "${pkgdir}"/usr/lib/electron + install -m755 electron "${pkgdir}"/usr/lib/electron + install -dm755 "${pkgdir}"/usr/bin + ln -s ../lib/electron/electron "${pkgdir}"/usr/bin + # namcap warning: Referenced library 'libnode.so' is an uninstalled dependency + # Fixable by moving libnode.so to /usr/lib + install -m644 libnode.so "${pkgdir}"/usr/lib/electron + cp -r locales resources "${pkgdir}"/usr/lib/electron + cd ../.. + + echo -n "v${pkgver}" > "${pkgdir}"/usr/lib/electron/version + + # Install .desktop and icon file + install -Dm644 "${srcdir}"/electron.desktop \ + "${pkgdir}"/usr/share/applications/electron.desktop + install -Dm644 default_app/icon.png \ + "${pkgdir}"/usr/share/pixmaps/electron.png # hicolor has no 1024x1024 + + # Install Node headers + _headers_dest="${pkgdir}/usr/lib/electron/node" + install -d -m755 "${_headers_dest}" + cd "${srcdir}"/electron/vendor/node + find src deps/http_parser deps/zlib deps/uv deps/npm \ + -name "*.gypi" \ + -exec install -D -m644 '{}' "${_headers_dest}/{}" \; \ + -or -name "*.h" \ + -exec install -D -m644 '{}' "${_headers_dest}/{}" \; + install -m644 {common,config}.gypi "${_headers_dest}" + cd "${_cc}"/src + find v8 -name "*.h" \ + -exec install -D -m644 '{}' "${_headers_dest}/deps/{}" \; + # echo '9' > "${_headers_dest}/installVersion" +} Copied: electron/repos/community-staging-x86_64/allow-i686.patch (from rev 297083, electron/trunk/allow-i686.patch) =================================================================== --- community-staging-x86_64/allow-i686.patch (rev 0) +++ community-staging-x86_64/allow-i686.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,14 @@ +--- a/script/update.py ++++ b/script/update.py +@@ -15,11 +15,6 @@ SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + + def main(): + os.chdir(SOURCE_ROOT) +- +- if PLATFORM != 'win32' and platform.architecture()[0] != '64bit': +- print 'Electron is required to be built on a 64bit machine' +- return 1 +- + update_external_binaries() + return update_gyp() + Copied: electron/repos/community-staging-x86_64/breakpad-glibc2.26.patch (from rev 297083, electron/trunk/breakpad-glibc2.26.patch) =================================================================== --- community-staging-x86_64/breakpad-glibc2.26.patch (rev 0) +++ community-staging-x86_64/breakpad-glibc2.26.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,208 @@ +--- a/src/client/linux/dump_writer_common/ucontext_reader.cc ++++ b/src/client/linux/dump_writer_common/ucontext_reader.cc +@@ -36,19 +36,19 @@ namespace google_breakpad { + + // Minidump defines register structures which are different from the raw + // structures which we get from the kernel. These are platform specific +-// functions to juggle the ucontext and user structures into minidump format. ++// functions to juggle the ucontext_t and user structures into minidump format. + + #if defined(__i386__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_ESP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_EIP]; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fp) { + const greg_t* regs = uc->uc_mcontext.gregs; + +@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__x86_64) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_RSP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[REG_RIP]; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fpregs) { + const greg_t* regs = uc->uc_mcontext.gregs; + +@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__ARM_EABI__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.arm_sp; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.arm_pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { + out->context_flags = MD_CONTEXT_ARM_FULL; + + out->iregs[0] = uc->uc_mcontext.arm_r0; +@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { + + #elif defined(__aarch64__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.sp; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct fpsimd_context* fpregs) { + out->context_flags = MD_CONTEXT_ARM64_FULL; + +@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, + + #elif defined(__mips__) + +-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { + return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]; + } + +-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { ++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + return uc->uc_mcontext.pc; + } + +-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { ++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { + #if _MIPS_SIM == _ABI64 + out->context_flags = MD_CONTEXT_MIPS64_FULL; + #elif _MIPS_SIM == _ABIO32 +--- a/src/client/linux/dump_writer_common/ucontext_reader.h ++++ b/src/client/linux/dump_writer_common/ucontext_reader.h +@@ -39,23 +39,23 @@ + + namespace google_breakpad { + +-// Wraps platform-dependent implementations of accessors to ucontext structs. ++// Wraps platform-dependent implementations of accessors to ucontext_t structs. + struct UContextReader { +- static uintptr_t GetStackPointer(const struct ucontext* uc); ++ static uintptr_t GetStackPointer(const ucontext_t* uc); + +- static uintptr_t GetInstructionPointer(const struct ucontext* uc); ++ static uintptr_t GetInstructionPointer(const ucontext_t* uc); + +- // Juggle a arch-specific ucontext into a minidump format ++ // Juggle a arch-specific ucontext_t into a minidump format + // out: the minidump structure + // info: the collection of register structures. + #if defined(__i386__) || defined(__x86_64) +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct _libc_fpstate* fp); + #elif defined(__aarch64__) +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct fpsimd_context* fpregs); + #else +- static void FillCPUContext(RawContextCPU *out, const ucontext *uc); ++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc); + #endif + }; + +--- a/src/client/linux/handler/exception_handler.cc ++++ b/src/client/linux/handler/exception_handler.cc +@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { + // Fill in all the holes in the struct to make Valgrind happy. + memset(&g_crash_context_, 0, sizeof(g_crash_context_)); + memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); +- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); ++ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t)); + #if defined(__aarch64__) +- struct ucontext* uc_ptr = (struct ucontext*)uc; ++ ucontext_t* uc_ptr = (ucontext_t*)uc; + struct fpsimd_context* fp_ptr = + (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; + if (fp_ptr->head.magic == FPSIMD_MAGIC) { +@@ -450,9 +450,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { + } + #elif !defined(__ARM_EABI__) && !defined(__mips__) + // FP state is not part of user ABI on ARM Linux. +- // In case of MIPS Linux FP state is already part of struct ucontext ++ // In case of MIPS Linux FP state is already part of ucontext_t + // and 'float_state' is not a member of CrashContext. +- struct ucontext* uc_ptr = (struct ucontext*)uc; ++ ucontext_t* uc_ptr = (ucontext_t*)uc; + if (uc_ptr->uc_mcontext.fpregs) { + memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, + sizeof(g_crash_context_.float_state)); +@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) { + // ExceptionHandler::HandleSignal(). + siginfo.si_code = SI_USER; + siginfo.si_pid = getpid(); +- struct ucontext context; ++ ucontext_t context; + getcontext(&context); + return HandleSignal(sig, &siginfo, &context); + } +--- a/src/client/linux/handler/exception_handler.h ++++ b/src/client/linux/handler/exception_handler.h +@@ -191,11 +191,11 @@ class ExceptionHandler { + struct CrashContext { + siginfo_t siginfo; + pid_t tid; // the crashing thread. +- struct ucontext context; ++ ucontext_t context; + #if !defined(__ARM_EABI__) && !defined(__mips__) + // #ifdef this out because FP state is not part of user ABI for Linux ARM. + // In case of MIPS Linux FP state is already part of struct +- // ucontext so 'float_state' is not required. ++ // ucontext_t so 'float_state' is not required. + fpstate_t float_state; + #endif + }; +--- a/src/client/linux/microdump_writer/microdump_writer.cc ++++ b/src/client/linux/microdump_writer/microdump_writer.cc +@@ -560,7 +560,7 @@ class MicrodumpWriter { + + void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } + +- const struct ucontext* const ucontext_; ++ const ucontext_t* const ucontext_; + #if !defined(__ARM_EABI__) && !defined(__mips__) + const google_breakpad::fpstate_t* const float_state_; + #endif +--- a/src/client/linux/minidump_writer/minidump_writer.cc ++++ b/src/client/linux/minidump_writer/minidump_writer.cc +@@ -1248,7 +1248,7 @@ class MinidumpWriter { + const int fd_; // File descriptor where the minidum should be written. + const char* path_; // Path to the file where the minidum should be written. + +- const struct ucontext* const ucontext_; // also from the signal handler ++ const ucontext_t* const ucontext_; // also from the signal handler + #if !defined(__ARM_EABI__) && !defined(__mips__) + const google_breakpad::fpstate_t* const float_state_; // ditto + #endif Copied: electron/repos/community-staging-x86_64/chromium-dmabuf.patch (from rev 297083, electron/trunk/chromium-dmabuf.patch) =================================================================== --- community-staging-x86_64/chromium-dmabuf.patch (rev 0) +++ community-staging-x86_64/chromium-dmabuf.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,86 @@ +--- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc ++++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +@@ -7,36 +7,35 @@ + #include <fcntl.h> + #include <linux/version.h> + #include <stddef.h> ++#include <sys/ioctl.h> + #include <sys/mman.h> + #include <xf86drm.h> + + #include "base/debug/crash_logging.h" + #include "base/memory/ptr_util.h" ++#include "base/posix/eintr_wrapper.h" + #include "base/process/memory.h" + #include "base/process/process_metrics.h" + #include "base/strings/stringprintf.h" + #include "base/trace_event/trace_event.h" + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) ++#include <linux/dma-buf.h> ++#else + #include <linux/types.h> + +-struct local_dma_buf_sync { ++struct dma_buf_sync { + __u64 flags; + }; + +-#define LOCAL_DMA_BUF_SYNC_READ (1 << 0) +-#define LOCAL_DMA_BUF_SYNC_WRITE (2 << 0) +-#define LOCAL_DMA_BUF_SYNC_RW \ +- (LOCAL_DMA_BUF_SYNC_READ | LOCAL_DMA_BUF_SYNC_WRITE) +-#define LOCAL_DMA_BUF_SYNC_START (0 << 2) +-#define LOCAL_DMA_BUF_SYNC_END (1 << 2) ++#define DMA_BUF_SYNC_READ (1 << 0) ++#define DMA_BUF_SYNC_WRITE (2 << 0) ++#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE) ++#define DMA_BUF_SYNC_START (0 << 2) ++#define DMA_BUF_SYNC_END (1 << 2) + +-#define LOCAL_DMA_BUF_BASE 'b' +-#define LOCAL_DMA_BUF_IOCTL_SYNC \ +- _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync) +- +-#else +-#include <linux/dma-buf.h> ++#define DMA_BUF_BASE 'b' ++#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) + #endif + + namespace gfx { +@@ -44,25 +43,19 @@ namespace gfx { + namespace { + + void PrimeSyncStart(int dmabuf_fd) { +- struct local_dma_buf_sync sync_start = {0}; ++ struct dma_buf_sync sync_start = {0}; + +- sync_start.flags = LOCAL_DMA_BUF_SYNC_START | LOCAL_DMA_BUF_SYNC_RW; +-#if DCHECK_IS_ON() +- int rv = +-#endif +- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_start); +- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; ++ sync_start.flags = DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW; ++ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_start)); ++ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; + } + + void PrimeSyncEnd(int dmabuf_fd) { +- struct local_dma_buf_sync sync_end = {0}; ++ struct dma_buf_sync sync_end = {0}; + +- sync_end.flags = LOCAL_DMA_BUF_SYNC_END | LOCAL_DMA_BUF_SYNC_RW; +-#if DCHECK_IS_ON() +- int rv = +-#endif +- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end); +- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; ++ sync_end.flags = DMA_BUF_SYNC_END | DMA_BUF_SYNC_RW; ++ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_end)); ++ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; + } + + } // namespace Copied: electron/repos/community-staging-x86_64/chromium-include-functional.patch (from rev 297083, electron/trunk/chromium-include-functional.patch) =================================================================== --- community-staging-x86_64/chromium-include-functional.patch (rev 0) +++ community-staging-x86_64/chromium-include-functional.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,10 @@ +--- a/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h ++++ b/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h +@@ -5,6 +5,7 @@ + #include "platform/PlatformExport.h" + #include "platform/wtf/ThreadSpecific.h" + ++#include <functional> + #include <memory> + + namespace gpu { Copied: electron/repos/community-staging-x86_64/chromium-use-system-ffmpeg.patch (from rev 297083, electron/trunk/chromium-use-system-ffmpeg.patch) =================================================================== --- community-staging-x86_64/chromium-use-system-ffmpeg.patch (rev 0) +++ community-staging-x86_64/chromium-use-system-ffmpeg.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,43 @@ +--- a/media/ffmpeg/ffmpeg_common.h ++++ b/media/ffmpeg/ffmpeg_common.h +@@ -23,10 +23,12 @@ + + // Include FFmpeg header files. + extern "C" { ++#if !defined(USE_SYSTEM_FFMPEG) + // Disable deprecated features which result in spammy compile warnings. This + // list of defines must mirror those in the 'defines' section of FFmpeg's + // BUILD.gn file or the headers below will generate different structures! + #define FF_API_CONVERGENCE_DURATION 0 ++#endif // !defined(USE_SYSTEM_FFMPEG) + // Upstream libavcodec/utils.c still uses the deprecated + // av_dup_packet(), causing deprecation warnings. + // The normal fix for such things is to disable the feature as below, +@@ -40,7 +42,9 @@ + MSVC_PUSH_DISABLE_WARNING(4244); + #include <libavcodec/avcodec.h> + #include <libavformat/avformat.h> ++#if !defined(USE_SYSTEM_FFMPEG) + #include <libavformat/internal.h> ++#endif // !defined(USE_SYSTEM_FFMPEG) + #include <libavformat/avio.h> + #include <libavutil/avutil.h> + #include <libavutil/imgutils.h> +--- a/media/filters/ffmpeg_demuxer.cc ++++ b/media/filters/ffmpeg_demuxer.cc +@@ -1223,6 +1223,7 @@ + // If no estimate is found, the stream entry will be kInfiniteDuration. + std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams, + kInfiniteDuration); ++#if !defined(USE_SYSTEM_FFMPEG) + const AVFormatInternal* internal = format_context->internal; + if (internal && internal->packet_buffer && + format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) { +@@ -1246,6 +1247,7 @@ + packet_buffer = packet_buffer->next; + } + } ++#endif // !defined(USE_SYSTEM_FFMPEG) + + std::unique_ptr<MediaTracks> media_tracks(new MediaTracks()); + Copied: electron/repos/community-staging-x86_64/chromium-use-system-minizip.patch (from rev 297083, electron/trunk/chromium-use-system-minizip.patch) =================================================================== --- community-staging-x86_64/chromium-use-system-minizip.patch (rev 0) +++ community-staging-x86_64/chromium-use-system-minizip.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,14 @@ +--- a/third_party/zlib/google/zip_reader.cc ++++ b/third_party/zlib/google/zip_reader.cc +@@ -278,10 +278,9 @@ + + current_entry_info_.reset(); + reached_end_ = false; +- const int kDefaultCaseSensivityOfOS = 0; + const int result = unzLocateFile(zip_file_, + path_in_zip.AsUTF8Unsafe().c_str(), +- kDefaultCaseSensivityOfOS); ++ NULL); + if (result != UNZ_OK) + return false; + Copied: electron/repos/community-staging-x86_64/chromium-use-system-re2.patch (from rev 297083, electron/trunk/chromium-use-system-re2.patch) =================================================================== --- community-staging-x86_64/chromium-use-system-re2.patch (rev 0) +++ community-staging-x86_64/chromium-use-system-re2.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,10 @@ +--- a/build/linux/unbundle/re2.gn ++++ b/build/linux/unbundle/re2.gn +@@ -11,7 +11,6 @@ + "re2/re2.h", + "re2/set.h", + "re2/stringpiece.h", +- "re2/variadic_function.h", + ] + } + Copied: electron/repos/community-staging-x86_64/default_app-icon.patch (from rev 297083, electron/trunk/default_app-icon.patch) =================================================================== --- community-staging-x86_64/default_app-icon.patch (rev 0) +++ community-staging-x86_64/default_app-icon.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,22 @@ +--- a/default_app/default_app.js ++++ b/default_app/default_app.js +@@ -20,9 +20,6 @@ exports.load = (appUrl) => { + }, + useContentSize: true + } +- if (process.platform === 'linux') { +- options.icon = path.join(__dirname, 'icon.png') +- } + + mainWindow = new BrowserWindow(options) + mainWindow.loadURL(appUrl) +--- a/filenames.gypi ++++ b/filenames.gypi +@@ -86,7 +86,6 @@ + ], + 'default_app_sources': [ + 'default_app/default_app.js', +- 'default_app/icon.png', + 'default_app/index.html', + 'default_app/main.js', + 'default_app/package.json', Copied: electron/repos/community-staging-x86_64/dont-bootstrap-libchromiumcontent.patch (from rev 297083, electron/trunk/dont-bootstrap-libchromiumcontent.patch) =================================================================== --- community-staging-x86_64/dont-bootstrap-libchromiumcontent.patch (rev 0) +++ community-staging-x86_64/dont-bootstrap-libchromiumcontent.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,13 @@ +diff --git a/script/build-libchromiumcontent.py b/script/build-libchromiumcontent.py +index e0a95f6..1383e70 100755 +--- a/script/build-libchromiumcontent.py ++++ b/script/build-libchromiumcontent.py +@@ -44,7 +44,7 @@ def main(): + build = os.path.join(script_dir, 'build') + create_dist = os.path.join(script_dir, 'create-dist') + if args.force_update or libchromiumcontent_outdated(): +- execute_stdout([sys.executable, bootstrap]) ++ # execute_stdout([sys.executable, bootstrap]) + execute_stdout([sys.executable, update, '-t', args.target_arch, + '--defines', args.defines]) + update_gclient_done_marker() Copied: electron/repos/community-staging-x86_64/dont-update-submodules.patch (from rev 297083, electron/trunk/dont-update-submodules.patch) =================================================================== --- community-staging-x86_64/dont-update-submodules.patch (rev 0) +++ community-staging-x86_64/dont-update-submodules.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,11 @@ +--- a/script/bootstrap.py ++++ b/script/bootstrap.py +@@ -31,7 +31,7 @@ def main(): + if sys.platform == 'cygwin': + update_win32_python() + +- update_submodules() ++ # update_submodules() + + libcc_source_path = args.libcc_source_path + libcc_shared_library_path = args.libcc_shared_library_path Copied: electron/repos/community-staging-x86_64/dont-use-sysroot.patch (from rev 297083, electron/trunk/dont-use-sysroot.patch) =================================================================== --- community-staging-x86_64/dont-use-sysroot.patch (rev 0) +++ community-staging-x86_64/dont-use-sysroot.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,27 @@ +--- a/script/bootstrap.py ++++ b/script/bootstrap.py +@@ -60,9 +60,6 @@ def main(): + libcc_source_path, libcc_shared_library_path, + libcc_static_library_path) + +- if PLATFORM == 'linux' and args.target_arch != 'mips64el': +- download_sysroot(args.target_arch) +- + create_chrome_version_h() + touch_config_gypi() + run_update(defines, args.msvs) +--- a/toolchain.gypi ++++ b/toolchain.gypi +@@ -59,10 +59,10 @@ + 'sysroot%': '<(source_root)/vendor/debian_jessie_arm64-sysroot', + }], + ['target_arch=="ia32"', { +- 'sysroot%': '<(source_root)/vendor/debian_jessie_i386-sysroot', ++ 'sysroot%': '/', + }], + ['target_arch=="x64"', { +- 'sysroot%': '<(source_root)/vendor/debian_jessie_amd64-sysroot', ++ 'sysroot%': '/', + }], + ['target_arch=="mips64el"', { + 'sysroot%': '<(source_root)/vendor/debian_jessie_mips64-sysroot', Copied: electron/repos/community-staging-x86_64/electron.desktop (from rev 297083, electron/trunk/electron.desktop) =================================================================== --- community-staging-x86_64/electron.desktop (rev 0) +++ community-staging-x86_64/electron.desktop 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=Electron +Icon=electron +Exec=electron %u +Categories=Development;GTK; +StartupNotify=true Copied: electron/repos/community-staging-x86_64/gtk3-menu-bar.patch (from rev 297083, electron/trunk/gtk3-menu-bar.patch) =================================================================== --- community-staging-x86_64/gtk3-menu-bar.patch (rev 0) +++ community-staging-x86_64/gtk3-menu-bar.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,91 @@ +--- a/atom/browser/ui/views/menu_bar.cc ++++ b/atom/browser/ui/views/menu_bar.cc +@@ -16,8 +16,6 @@ + + #if defined(OS_WIN) + #include "ui/gfx/color_utils.h" +-#elif defined(USE_X11) +-#include "chrome/browser/ui/libgtkui/skia_utils_gtk.h" + #endif + + namespace atom { +@@ -30,18 +28,71 @@ const char kViewClassName[] = "ElectronMenuBar"; + const SkColor kDefaultColor = SkColorSetARGB(255, 233, 233, 233); + + #if defined(USE_X11) ++SkColor GdkRGBAToSkColor(GdkRGBA color) { ++ return SkColorSetARGB(round(color.alpha * 255), ++ round(color.red * 255), ++ round(color.green * 255), ++ round(color.blue * 255)); ++} ++ + void GetMenuBarColor(SkColor* enabled, SkColor* disabled, SkColor* highlight, + SkColor* hover, SkColor* background) { ++ GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + GtkWidget* menu_bar = gtk_menu_bar_new(); +- +- GtkStyle* style = gtk_rc_get_style(menu_bar); +- *enabled = libgtkui::GdkColorToSkColor(style->fg[GTK_STATE_NORMAL]); +- *disabled = libgtkui::GdkColorToSkColor(style->fg[GTK_STATE_INSENSITIVE]); +- *highlight = libgtkui::GdkColorToSkColor(style->fg[GTK_STATE_SELECTED]); +- *hover = libgtkui::GdkColorToSkColor(style->fg[GTK_STATE_PRELIGHT]); +- *background = libgtkui::GdkColorToSkColor(style->bg[GTK_STATE_NORMAL]); +- ++ GtkWidget* menu_item = gtk_menu_item_new_with_label(""); ++ GtkWidget* label = gtk_bin_get_child(GTK_BIN(menu_item)); ++ GtkStyleContext* window_style_ctx = gtk_widget_get_style_context(window); ++ GtkStyleContext* menu_bar_style_ctx = ++ gtk_widget_get_style_context(menu_bar); ++ GtkStyleContext* menu_item_style_ctx = ++ gtk_widget_get_style_context(menu_item); ++ GtkStyleContext* label_style_ctx = gtk_widget_get_style_context(label); ++ GdkRGBA normal_color; ++ GdkRGBA backdrop_color; ++ GdkRGBA prelight_color; ++ GdkRGBA* background_color_ptr; ++ ++ gtk_container_add(GTK_CONTAINER(window), menu_bar); ++ gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item); ++ ++ gtk_style_context_get(menu_bar_style_ctx, ++ GTK_STATE_FLAG_NORMAL, ++ "background-color", ++ &background_color_ptr, ++ NULL); ++ ++ if (background_color_ptr->alpha == 0.0) ++ gtk_style_context_get(window_style_ctx, ++ GTK_STATE_FLAG_NORMAL, ++ "background-color", ++ &background_color_ptr, ++ NULL); ++ ++ *background = GdkRGBAToSkColor(*background_color_ptr); ++ gdk_rgba_free(background_color_ptr); ++ ++ gtk_style_context_get_color(label_style_ctx, ++ GTK_STATE_FLAG_NORMAL, ++ &normal_color); ++ *enabled = GdkRGBAToSkColor(normal_color); ++ *hover = GdkRGBAToSkColor(normal_color); ++ ++ gtk_style_context_set_state(menu_item_style_ctx, GTK_STATE_FLAG_PRELIGHT); ++ gtk_style_context_get_color(label_style_ctx, ++ GTK_STATE_FLAG_NORMAL, ++ &prelight_color); ++ gtk_style_context_set_state(menu_item_style_ctx, GTK_STATE_FLAG_NORMAL); ++ *highlight = GdkRGBAToSkColor(prelight_color); ++ ++ ++ gtk_style_context_get_color(label_style_ctx, ++ GTK_STATE_FLAG_BACKDROP, ++ &backdrop_color); ++ *disabled = GdkRGBAToSkColor(backdrop_color); ++ ++ gtk_widget_destroy(menu_item); + gtk_widget_destroy(menu_bar); ++ gtk_widget_destroy(window); + } + #endif + Copied: electron/repos/community-staging-x86_64/gtk3-message-box.patch (from rev 297083, electron/trunk/gtk3-message-box.patch) =================================================================== --- community-staging-x86_64/gtk3-message-box.patch (rev 0) +++ community-staging-x86_64/gtk3-message-box.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,11 @@ +--- a/atom/browser/ui/message_box_gtk.cc ++++ b/atom/browser/ui/message_box_gtk.cc +@@ -197,7 +197,7 @@ + } + + void GtkMessageBox::OnCheckboxToggled(GtkWidget* widget) { +- checkbox_checked_ = GTK_TOGGLE_BUTTON(widget)->active; ++ checkbox_checked_ = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); + } + + } // namespace Copied: electron/repos/community-staging-x86_64/gtk3-warnings.patch (from rev 297083, electron/trunk/gtk3-warnings.patch) =================================================================== --- community-staging-x86_64/gtk3-warnings.patch (rev 0) +++ community-staging-x86_64/gtk3-warnings.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,65 @@ +--- a/atom/browser/ui/file_dialog_gtk.cc ++++ b/atom/browser/ui/file_dialog_gtk.cc +@@ -2,6 +2,8 @@ + // Use of this source code is governed by the MIT license that can be + // found in the LICENSE file. + ++#include <glib/gi18n.h> ++ + #include "atom/browser/ui/file_dialog.h" + + #include "atom/browser/native_window_views.h" +@@ -39,20 +41,20 @@ class FileChooserDialog { + const DialogSettings& settings) + : parent_(static_cast<atom::NativeWindowViews*>(settings.parent_window)), + filters_(settings.filters) { +- const char* confirm_text = GTK_STOCK_OK; ++ const char* confirm_text = _("_OK"); + + if (!settings.button_label.empty()) + confirm_text = settings.button_label.c_str(); + else if (action == GTK_FILE_CHOOSER_ACTION_SAVE) +- confirm_text = GTK_STOCK_SAVE; ++ confirm_text = _("_Save"); + else if (action == GTK_FILE_CHOOSER_ACTION_OPEN) +- confirm_text = GTK_STOCK_OPEN; ++ confirm_text = _("_Open"); + + dialog_ = gtk_file_chooser_dialog_new( + settings.title.c_str(), + NULL, + action, +- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, ++ _("_Cancel"), GTK_RESPONSE_CANCEL, + confirm_text, GTK_RESPONSE_ACCEPT, + NULL); + if (parent_) { +--- a/atom/browser/ui/message_box_gtk.cc ++++ b/atom/browser/ui/message_box_gtk.cc +@@ -2,6 +2,8 @@ + // Use of this source code is governed by the MIT license that can be + // found in the LICENSE file. + ++#include <glib/gi18n.h> ++ + #include "atom/browser/ui/message_box.h" + + #include "atom/browser/browser.h" +@@ -126,13 +128,13 @@ class GtkMessageBox { + const char* TranslateToStock(int id, const std::string& text) { + std::string lower = base::ToLowerASCII(text); + if (lower == "cancel") +- return GTK_STOCK_CANCEL; ++ return _("_Cancel"); + else if (lower == "no") +- return GTK_STOCK_NO; ++ return _("_No"); + else if (lower == "ok") +- return GTK_STOCK_OK; ++ return _("_OK"); + else if (lower == "yes") +- return GTK_STOCK_YES; ++ return _("_Yes"); + else + return text.c_str(); + } Copied: electron/repos/community-staging-x86_64/gyp-no-rpath.patch (from rev 297083, electron/trunk/gyp-no-rpath.patch) =================================================================== --- community-staging-x86_64/gyp-no-rpath.patch (rev 0) +++ community-staging-x86_64/gyp-no-rpath.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,12 @@ +--- a/pylib/gyp/generator/ninja.py ++++ b/pylib/gyp/generator/ninja.py +@@ -1221,9 +1221,6 @@ + rpath = 'lib/' + if self.toolset != 'target': + rpath += self.toolset +- ldflags.append(r'-Wl,-rpath=\$$ORIGIN/%s' % rpath) +- else: +- ldflags.append('-Wl,-rpath=%s' % self.target_rpath) + ldflags.append('-Wl,-rpath-link=%s' % rpath) + self.WriteVariableList(ninja_file, 'ldflags', + map(self.ExpandSpecial, ldflags)) Copied: electron/repos/community-staging-x86_64/libchromiumcontent-no-depot_tools.patch (from rev 297083, electron/trunk/libchromiumcontent-no-depot_tools.patch) =================================================================== --- community-staging-x86_64/libchromiumcontent-no-depot_tools.patch (rev 0) +++ community-staging-x86_64/libchromiumcontent-no-depot_tools.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,30 @@ +--- a/script/update ++++ b/script/update +@@ -48,8 +48,8 @@ + if sys.platform == 'win32' and not args.skip_depot_tools_update: + update_depot_tools() + +- if args.clean and os.path.isdir(SRC_DIR): +- git_clean_recursive(SRC_DIR) ++ # if args.clean and os.path.isdir(SRC_DIR): ++ # git_clean_recursive(SRC_DIR) + + # Warning about using a network share as git cache from Windows 7+: The + # gclient script may experience errors unless you disable SMBv2 cache by +@@ -60,11 +60,11 @@ + git_cache = args.git_cache or os.getenv('LIBCHROMIUMCONTENT_GIT_CACHE', '') + target_arch = args.target_arch + nohooks = target_arch == 'mips64el' and IS_MIPS64EL_HOST +- if not args.skip_gclient: +- if (args.source_only): +- return gclient_sync(chromium_version(), args.clean, git_cache, nohooks) +- else: +- gclient_sync(chromium_version(), args.clean, git_cache, nohooks) ++ # if not args.skip_gclient: ++ # if (args.source_only): ++ # return gclient_sync(chromium_version(), args.clean, git_cache, nohooks) ++ # else: ++ # gclient_sync(chromium_version(), args.clean, git_cache, nohooks) + + if target_arch == 'mips64el' and IS_MIPS64EL_HOST: + os.system('sh script/mips64el/runhooks-mips64el') Copied: electron/repos/community-staging-x86_64/libchromiumcontent-settings.patch (from rev 297083, electron/trunk/libchromiumcontent-settings.patch) =================================================================== --- community-staging-x86_64/libchromiumcontent-settings.patch (rev 0) +++ community-staging-x86_64/libchromiumcontent-settings.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,69 @@ +--- a/chromiumcontent/BUILD.gn ++++ b/chromiumcontent/BUILD.gn +@@ -34,7 +34,7 @@ group("targets") { + ] + + if (is_linux) { +- deps += [ "//chrome/browser/ui/libgtkui:libgtk2ui" ] ++ deps += [ "//chrome/browser/ui/libgtkui:libgtk3ui" ] + } + + if (is_component_build) { +@@ -156,13 +156,13 @@ if (is_electron_build && is_component_build) { + static_library("libgtkui") { + complete_static_lib = true + sources = [ +- "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk2ui/app_indicator_icon.o", +- "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk2ui/app_indicator_icon_menu.o", +- "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk2ui/gtk_util.o", +- "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk2ui/gtk_status_icon.o", +- "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk2ui/menu_util.o", +- "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk2ui/skia_utils_gtk.o", +- "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk2ui/unity_service.o", ++ "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk3ui/app_indicator_icon.o", ++ "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk3ui/app_indicator_icon_menu.o", ++ "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk3ui/gtk_util.o", ++ "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk3ui/gtk_status_icon.o", ++ "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk3ui/menu_util.o", ++ "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk3ui/skia_utils_gtk.o", ++ "$root_out_dir/obj/chrome/browser/ui/libgtkui/libgtk3ui/unity_service.o", + ] + } + } +--- a/chromiumcontent/args/static_library.gn ++++ b/chromiumcontent/args/static_library.gn +@@ -2,10 +2,22 @@ root_extra_deps = [ "//chromiumcontent:chromiumcontent" ] + is_electron_build = true + is_component_build = false + is_debug = false +-symbol_level = 2 ++symbol_level = 0 + enable_nacl = false + enable_widevine = true + proprietary_codecs = true + is_component_ffmpeg = true + ffmpeg_branding = "Chrome" + v8_promise_internal_field_count = 1 # https://github.com/nodejs/node/pull/13242 ++clang_base_path = "/usr" ++clang_use_chrome_plugins = false ++fatal_linker_warnings = false ++treat_warnings_as_errors = false ++fieldtrial_testing_like_official_build = true ++remove_webcore_debug_symbols = true ++link_pulseaudio = true ++linux_use_bundled_binutils = false ++use_cups = true ++use_gconf = false ++use_gtk3 = true ++use_sysroot = false +--- a/script/update ++++ b/script/update +@@ -295,7 +295,7 @@ def run_gn(target_arch, defines): + if sys.platform in ['win32', 'cygwin']: + args += ' use_experimental_allocator_shim=false' + if sys.platform == 'linux2': +- args += ' use_gtk3=false' ++ args += ' use_gtk3=true' + if target_arch == 'mips64el': + args += ' clang_use_chrome_plugins=false' + args += ' enable_hangout_services_extension=true' Copied: electron/repos/community-staging-x86_64/libchromiumcontent-sort-filenames.patch (from rev 297083, electron/trunk/libchromiumcontent-sort-filenames.patch) =================================================================== --- community-staging-x86_64/libchromiumcontent-sort-filenames.patch (rev 0) +++ community-staging-x86_64/libchromiumcontent-sort-filenames.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,32 @@ +--- a/chromiumcontent/build_libs.py ++++ b/chromiumcontent/build_libs.py +@@ -13,7 +13,8 @@ def gen_list(out, name, obj_dirs): + out.write(name + " = [\n") + for base_dir in obj_dirs: + for dir, subdirs, files in os.walk(os.path.join('obj', base_dir)): +- for f in files: ++ subdirs.sort() ++ for f in sorted(files): + if f.endswith('.obj') or f.endswith('.o'): + out.write('"' + os.path.abspath(os.path.join(dir, f)) + '",\n') + out.write("]\n") +--- a/tools/generate_filenames_gypi.py ++++ b/tools/generate_filenames_gypi.py +@@ -99,7 +99,7 @@ def main(target_file, code_dir, shared_dir, static_dir): + + + def find_libraries(dirpath, library_suffix, list_of_excludes): +- libraries = glob.glob(os.path.join(dirpath, '*.' + library_suffix)) ++ libraries = sorted(glob.glob(os.path.join(dirpath, '*.' + library_suffix))) + if (library_suffix == 'so'): + # Handle "libname.so.123" + libraries += find_files_by_regex(dirpath, re.compile('.*\.so\.[0-9]+')) +@@ -132,7 +132,7 @@ def find_files_by_regex(dirpath, regex): + if regex.match(file): + files_found.append(os.path.join(root, file)) + +- return files_found ++ return sorted(files_found) + + + def is_v8_library(p): Copied: electron/repos/community-staging-x86_64/libchromiumcontent-static-library-only.patch (from rev 297083, electron/trunk/libchromiumcontent-static-library-only.patch) =================================================================== --- community-staging-x86_64/libchromiumcontent-static-library-only.patch (rev 0) +++ community-staging-x86_64/libchromiumcontent-static-library-only.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,54 @@ +--- a/script/build ++++ b/script/build +@@ -13,7 +13,7 @@ from lib.config import MIPS64EL_GCC, IS_MIPS64EL_HOST, set_mips64el_env, \ + SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor') + TARGETS = ['chromiumcontent_all'] +-COMPONENTS = ['static_library', 'shared_library', 'ffmpeg'] ++COMPONENTS = ['static_library'] + + NINJA = 'ninja' + if sys.platform == 'win32': +--- a/script/create-dist ++++ b/script/create-dist +@@ -76,7 +76,7 @@ BINARIES = { + 'libffmpeg.dylib', + ], + 'linux': [ +- 'libffmpeg.so', ++ # 'libffmpeg.so', + ], + 'win32': [ + 'd3dcompiler_47.dll', +@@ -390,7 +390,7 @@ def generate_ninja(args, ninja): + copy_generated_sources(target_arch, component, ninja) + copy_locales(target_arch, component, ninja) + +- copy_ffmpeg(target_arch, ninja) ++ # copy_ffmpeg(target_arch, ninja) + copy_sources(ninja) + generate_licenses(ninja) + +@@ -513,9 +513,9 @@ def copy_binaries(target_arch, component, create_debug_archive, + else: + binaries = [ 'chromedriver', 'clang_x64_v8_mips64el/mksnapshot' ] + else: +- binaries = [ 'chromedriver', 'mksnapshot' ] ++ binaries = [ 'mksnapshot' ] + +- ffmpeg_output_dir = get_output_dir(SOURCE_ROOT, target_arch, 'ffmpeg') ++ ffmpeg_output_dir = get_output_dir(SOURCE_ROOT, target_arch, 'static_library') + for binary in binaries: + ninja.copy(os.path.join(ffmpeg_output_dir, binary), target_dir) + +--- a/script/update ++++ b/script/update +@@ -19,7 +19,7 @@ VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor') + SRC_DIR = os.path.join(SOURCE_ROOT, 'src') + CHROMIUMCONTENT_SOURCE_DIR = os.path.join(SOURCE_ROOT, 'chromiumcontent') + CHROMIUMCONTENT_DESTINATION_DIR = os.path.join(SRC_DIR, 'chromiumcontent') +-COMPONENTS = ['static_library', 'shared_library', 'ffmpeg'] ++COMPONENTS = ['static_library'] + DEPOT_TOOLS = os.path.join(VENDOR_DIR, 'depot_tools') + + NINJA = os.path.join(DEPOT_TOOLS, 'ninja') Copied: electron/repos/community-staging-x86_64/libchromiumcontent-use-system-tools.patch (from rev 297083, electron/trunk/libchromiumcontent-use-system-tools.patch) =================================================================== --- community-staging-x86_64/libchromiumcontent-use-system-tools.patch (rev 0) +++ community-staging-x86_64/libchromiumcontent-use-system-tools.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,55 @@ +--- a/script/build ++++ b/script/build +@@ -15,7 +15,7 @@ VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor') + TARGETS = ['chromiumcontent_all'] + COMPONENTS = ['static_library', 'shared_library', 'ffmpeg'] + +-NINJA = os.path.join(VENDOR_DIR, 'depot_tools', 'ninja') ++NINJA = 'ninja' + if sys.platform == 'win32': + NINJA = '{0}.exe'.format(NINJA) + elif IS_MIPS64EL_HOST: +--- a/script/create-dist ++++ b/script/create-dist +@@ -31,7 +31,7 @@ import ninja_syntax + MAIN_DIR = os.path.join(DIST_DIR, 'main') + DIST_SRC_DIR = os.path.join(MAIN_DIR, 'src') + +-NINJA = os.path.join(VENDOR_DIR, 'depot_tools', 'ninja') ++NINJA = 'ninja' + if sys.platform == 'win32': + NINJA = '{0}.exe'.format(NINJA) + elif IS_MIPS64EL_HOST: +--- a/script/update ++++ b/script/update +@@ -69,17 +69,16 @@ def main(): + if target_arch == 'mips64el' and IS_MIPS64EL_HOST: + os.system('sh script/mips64el/runhooks-mips64el') + +- if sys.platform == 'linux2': +- install_sysroot(target_arch) +- elif sys.platform in ['win32', 'cygwin']: +- update_toolchain_json() ++ # if sys.platform == 'linux2': ++ # install_sysroot(target_arch) ++ # elif sys.platform in ['win32', 'cygwin']: ++ # update_toolchain_json() + + if target_arch == 'arm64': + install_aarch64_bintools() + + return (apply_patches(args.skip_patches, target_arch) or + copy_chromiumcontent_files() or +- update_clang() or + setup_mips64el_toolchain(target_arch) or + run_gn(target_arch, args.defines)) + +@@ -277,7 +276,7 @@ def run_gn(target_arch, defines): + if sys.platform in ['win32', 'cygwin']: + gn = os.path.join(SRC_DIR, 'buildtools', 'win', 'gn.exe') + elif sys.platform == 'linux2': +- gn = os.path.join(SRC_DIR, 'buildtools', 'linux64', 'gn') ++ gn = os.path.join(SRC_DIR, 'out', 'Release', 'gn') + elif sys.platform == 'darwin': + gn = os.path.join(SRC_DIR, 'buildtools', 'mac', 'gn') + Copied: electron/repos/community-staging-x86_64/no-whole-archive.patch (from rev 297083, electron/trunk/no-whole-archive.patch) =================================================================== --- community-staging-x86_64/no-whole-archive.patch (rev 0) +++ community-staging-x86_64/no-whole-archive.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,22 @@ +--- a/brightray/brightray.gyp ++++ b/brightray/brightray.gyp +@@ -48,14 +48,13 @@ + 'conditions': [ + # Link with libraries of libchromiumcontent. + ['OS=="linux" and libchromiumcontent_component==0', { +- # On Linux we have to use "--whole-archive" to force executable +- # to include all symbols, otherwise we will have plenty of ++ # On Linux we have to use "--start-group" or we will have plenty of + # unresolved symbols errors. +- 'direct_dependent_settings': { +- 'ldflags': [ +- '-Wl,--whole-archive', ++ 'link_settings': { ++ 'libraries': [ ++ '-Wl,--start-group', + '<@(libchromiumcontent_libraries)', +- '-Wl,--no-whole-archive', ++ '-Wl,--end-group' + ], + } + }, { # (Release build on Linux) Copied: electron/repos/community-staging-x86_64/use-system-ffmpeg.patch (from rev 297083, electron/trunk/use-system-ffmpeg.patch) =================================================================== --- community-staging-x86_64/use-system-ffmpeg.patch (rev 0) +++ community-staging-x86_64/use-system-ffmpeg.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,21 @@ +--- a/brightray/brightray.gyp ++++ b/brightray/brightray.gyp +@@ -145,8 +145,6 @@ + }, { + 'link_settings': { + 'libraries': [ +- # Link with ffmpeg. +- '<(libchromiumcontent_dir)/libffmpeg.so', + # Following libraries are required by libchromiumcontent: + '-lasound', + '-lcap', +--- a/electron.gyp ++++ b/electron.gyp +@@ -197,7 +197,6 @@ + }, { + 'copied_libraries': [ + '<(PRODUCT_DIR)/lib/libnode.so', +- '<(libchromiumcontent_dir)/libffmpeg.so', + ], + }], + ], Copied: electron/repos/community-staging-x86_64/use-system-libraries-in-node.patch (from rev 297083, electron/trunk/use-system-libraries-in-node.patch) =================================================================== --- community-staging-x86_64/use-system-libraries-in-node.patch (rev 0) +++ community-staging-x86_64/use-system-libraries-in-node.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,31 @@ +--- a/common.gypi ++++ b/common.gypi +@@ -22,12 +22,12 @@ + 'node_install_npm': 'false', + 'node_prefix': '', + 'node_shared': 'true', +- 'node_shared_cares': 'false', +- 'node_shared_http_parser': 'false', ++ 'node_shared_cares': 'true', ++ 'node_shared_http_parser': 'true', + 'node_shared_libuv': 'false', + 'node_shared_openssl': 'false', + 'node_shared_v8': 'true', +- 'node_shared_zlib': 'false', ++ 'node_shared_zlib': 'true', + 'node_tag': '', + 'node_use_dtrace': 'false', + 'node_use_etw': 'false', +@@ -165,6 +165,12 @@ + ], + }], + ['OS=="linux" and libchromiumcontent_component==0', { ++ 'libraries': [ ++ '-lcares', ++ '-lcrypto', ++ '-lhttp_parser', ++ '-lz', ++ ], + # Prevent the linker from stripping symbols. + 'ldflags': [ + '-Wl,--whole-archive', Copied: electron/repos/community-staging-x86_64/use-system-ninja.patch (from rev 297083, electron/trunk/use-system-ninja.patch) =================================================================== --- community-staging-x86_64/use-system-ninja.patch (rev 0) +++ community-staging-x86_64/use-system-ninja.patch 2018-02-22 16:27:56 UTC (rev 297084) @@ -0,0 +1,11 @@ +--- a/script/build.py ++++ b/script/build.py +@@ -23,7 +23,7 @@ + # Update the VS build env. + import_vs_env(get_target_arch()) + +- ninja = os.path.join('vendor', 'depot_tools', 'ninja') ++ ninja = 'ninja' + if sys.platform == 'win32': + ninja += '.exe' +