[arch-commits] Commit in electron/repos (58 files)

Levente Polyak anthraxx at archlinux.org
Fri Oct 7 09:57:51 UTC 2016


    Date: Friday, October 7, 2016 @ 09:57:50
  Author: anthraxx
Revision: 191543

archrelease: copy trunk to community-staging-i686, community-staging-x86_64

Added:
  electron/repos/community-staging-i686/
  electron/repos/community-staging-i686/PKGBUILD
    (from rev 191542, electron/trunk/PKGBUILD)
  electron/repos/community-staging-i686/allow-i686.patch
    (from rev 191542, electron/trunk/allow-i686.patch)
  electron/repos/community-staging-i686/brightray-dont-update-submodules.patch
    (from rev 191542, electron/trunk/brightray-dont-update-submodules.patch)
  electron/repos/community-staging-i686/brightray-no-whole-archive.patch
    (from rev 191542, electron/trunk/brightray-no-whole-archive.patch)
  electron/repos/community-staging-i686/brightray-use-system-ffmpeg.patch
    (from rev 191542, electron/trunk/brightray-use-system-ffmpeg.patch)
  electron/repos/community-staging-i686/chromium-cups.patch
    (from rev 191542, electron/trunk/chromium-cups.patch)
  electron/repos/community-staging-i686/chromium-gtk3-hidpi.patch
    (from rev 191542, electron/trunk/chromium-gtk3-hidpi.patch)
  electron/repos/community-staging-i686/chromium-gtk3-use-x11-backend.patch
    (from rev 191542, electron/trunk/chromium-gtk3-use-x11-backend.patch)
  electron/repos/community-staging-i686/chromium-unset-madv_free.patch
    (from rev 191542, electron/trunk/chromium-unset-madv_free.patch)
  electron/repos/community-staging-i686/chromium-use-system-ffmpeg.patch
    (from rev 191542, electron/trunk/chromium-use-system-ffmpeg.patch)
  electron/repos/community-staging-i686/chromium-use-system-minizip.patch
    (from rev 191542, electron/trunk/chromium-use-system-minizip.patch)
  electron/repos/community-staging-i686/chromium-use-system-re2.patch
    (from rev 191542, electron/trunk/chromium-use-system-re2.patch)
  electron/repos/community-staging-i686/default_app-icon.patch
    (from rev 191542, electron/trunk/default_app-icon.patch)
  electron/repos/community-staging-i686/dont-bootstrap-libchromiumcontent.patch
    (from rev 191542, electron/trunk/dont-bootstrap-libchromiumcontent.patch)
  electron/repos/community-staging-i686/dont-update-submodules.patch
    (from rev 191542, electron/trunk/dont-update-submodules.patch)
  electron/repos/community-staging-i686/dont-use-sysroot.patch
    (from rev 191542, electron/trunk/dont-use-sysroot.patch)
  electron/repos/community-staging-i686/electron.desktop
    (from rev 191542, electron/trunk/electron.desktop)
  electron/repos/community-staging-i686/gtk3-menu-bar.patch
    (from rev 191542, electron/trunk/gtk3-menu-bar.patch)
  electron/repos/community-staging-i686/gtk3-warnings.patch
    (from rev 191542, electron/trunk/gtk3-warnings.patch)
  electron/repos/community-staging-i686/gyp-no-rpath.patch
    (from rev 191542, electron/trunk/gyp-no-rpath.patch)
  electron/repos/community-staging-i686/libchromiumcontent-sort-filenames.patch
    (from rev 191542, electron/trunk/libchromiumcontent-sort-filenames.patch)
  electron/repos/community-staging-i686/libchromiumcontent-static-library-only.patch
    (from rev 191542, electron/trunk/libchromiumcontent-static-library-only.patch)
  electron/repos/community-staging-i686/libchromiumcontent-use-system-ffmpeg.patch
    (from rev 191542, electron/trunk/libchromiumcontent-use-system-ffmpeg.patch)
  electron/repos/community-staging-i686/libchromiumcontent-use-system-tools.patch
    (from rev 191542, electron/trunk/libchromiumcontent-use-system-tools.patch)
  electron/repos/community-staging-i686/use-system-clang.patch
    (from rev 191542, electron/trunk/use-system-clang.patch)
  electron/repos/community-staging-i686/use-system-ffmpeg.patch
    (from rev 191542, electron/trunk/use-system-ffmpeg.patch)
  electron/repos/community-staging-i686/use-system-libraries-in-node.patch
    (from rev 191542, electron/trunk/use-system-libraries-in-node.patch)
  electron/repos/community-staging-i686/use-system-ninja.patch
    (from rev 191542, electron/trunk/use-system-ninja.patch)
  electron/repos/community-staging-x86_64/
  electron/repos/community-staging-x86_64/PKGBUILD
    (from rev 191542, electron/trunk/PKGBUILD)
  electron/repos/community-staging-x86_64/allow-i686.patch
    (from rev 191542, electron/trunk/allow-i686.patch)
  electron/repos/community-staging-x86_64/brightray-dont-update-submodules.patch
    (from rev 191542, electron/trunk/brightray-dont-update-submodules.patch)
  electron/repos/community-staging-x86_64/brightray-no-whole-archive.patch
    (from rev 191542, electron/trunk/brightray-no-whole-archive.patch)
  electron/repos/community-staging-x86_64/brightray-use-system-ffmpeg.patch
    (from rev 191542, electron/trunk/brightray-use-system-ffmpeg.patch)
  electron/repos/community-staging-x86_64/chromium-cups.patch
    (from rev 191542, electron/trunk/chromium-cups.patch)
  electron/repos/community-staging-x86_64/chromium-gtk3-hidpi.patch
    (from rev 191542, electron/trunk/chromium-gtk3-hidpi.patch)
  electron/repos/community-staging-x86_64/chromium-gtk3-use-x11-backend.patch
    (from rev 191542, electron/trunk/chromium-gtk3-use-x11-backend.patch)
  electron/repos/community-staging-x86_64/chromium-unset-madv_free.patch
    (from rev 191542, electron/trunk/chromium-unset-madv_free.patch)
  electron/repos/community-staging-x86_64/chromium-use-system-ffmpeg.patch
    (from rev 191542, electron/trunk/chromium-use-system-ffmpeg.patch)
  electron/repos/community-staging-x86_64/chromium-use-system-minizip.patch
    (from rev 191542, electron/trunk/chromium-use-system-minizip.patch)
  electron/repos/community-staging-x86_64/chromium-use-system-re2.patch
    (from rev 191542, electron/trunk/chromium-use-system-re2.patch)
  electron/repos/community-staging-x86_64/default_app-icon.patch
    (from rev 191542, electron/trunk/default_app-icon.patch)
  electron/repos/community-staging-x86_64/dont-bootstrap-libchromiumcontent.patch
    (from rev 191542, electron/trunk/dont-bootstrap-libchromiumcontent.patch)
  electron/repos/community-staging-x86_64/dont-update-submodules.patch
    (from rev 191542, electron/trunk/dont-update-submodules.patch)
  electron/repos/community-staging-x86_64/dont-use-sysroot.patch
    (from rev 191542, electron/trunk/dont-use-sysroot.patch)
  electron/repos/community-staging-x86_64/electron.desktop
    (from rev 191542, electron/trunk/electron.desktop)
  electron/repos/community-staging-x86_64/gtk3-menu-bar.patch
    (from rev 191542, electron/trunk/gtk3-menu-bar.patch)
  electron/repos/community-staging-x86_64/gtk3-warnings.patch
    (from rev 191542, electron/trunk/gtk3-warnings.patch)
  electron/repos/community-staging-x86_64/gyp-no-rpath.patch
    (from rev 191542, electron/trunk/gyp-no-rpath.patch)
  electron/repos/community-staging-x86_64/libchromiumcontent-sort-filenames.patch
    (from rev 191542, electron/trunk/libchromiumcontent-sort-filenames.patch)
  electron/repos/community-staging-x86_64/libchromiumcontent-static-library-only.patch
    (from rev 191542, electron/trunk/libchromiumcontent-static-library-only.patch)
  electron/repos/community-staging-x86_64/libchromiumcontent-use-system-ffmpeg.patch
    (from rev 191542, electron/trunk/libchromiumcontent-use-system-ffmpeg.patch)
  electron/repos/community-staging-x86_64/libchromiumcontent-use-system-tools.patch
    (from rev 191542, electron/trunk/libchromiumcontent-use-system-tools.patch)
  electron/repos/community-staging-x86_64/use-system-clang.patch
    (from rev 191542, electron/trunk/use-system-clang.patch)
  electron/repos/community-staging-x86_64/use-system-ffmpeg.patch
    (from rev 191542, electron/trunk/use-system-ffmpeg.patch)
  electron/repos/community-staging-x86_64/use-system-libraries-in-node.patch
    (from rev 191542, electron/trunk/use-system-libraries-in-node.patch)
  electron/repos/community-staging-x86_64/use-system-ninja.patch
    (from rev 191542, electron/trunk/use-system-ninja.patch)

-----------------------------------------------------------------------+
 community-staging-i686/PKGBUILD                                       |  272 ++++++++++
 community-staging-i686/allow-i686.patch                               |   14 
 community-staging-i686/brightray-dont-update-submodules.patch         |   11 
 community-staging-i686/brightray-no-whole-archive.patch               |   22 
 community-staging-i686/brightray-use-system-ffmpeg.patch              |   11 
 community-staging-i686/chromium-cups.patch                            |   10 
 community-staging-i686/chromium-gtk3-hidpi.patch                      |   49 +
 community-staging-i686/chromium-gtk3-use-x11-backend.patch            |   12 
 community-staging-i686/chromium-unset-madv_free.patch                 |   14 
 community-staging-i686/chromium-use-system-ffmpeg.patch               |   48 +
 community-staging-i686/chromium-use-system-minizip.patch              |   14 
 community-staging-i686/chromium-use-system-re2.patch                  |   17 
 community-staging-i686/default_app-icon.patch                         |   22 
 community-staging-i686/dont-bootstrap-libchromiumcontent.patch        |   13 
 community-staging-i686/dont-update-submodules.patch                   |   11 
 community-staging-i686/dont-use-sysroot.patch                         |   27 
 community-staging-i686/electron.desktop                               |    7 
 community-staging-i686/gtk3-menu-bar.patch                            |   91 +++
 community-staging-i686/gtk3-warnings.patch                            |   65 ++
 community-staging-i686/gyp-no-rpath.patch                             |   12 
 community-staging-i686/libchromiumcontent-sort-filenames.patch        |   11 
 community-staging-i686/libchromiumcontent-static-library-only.patch   |   26 
 community-staging-i686/libchromiumcontent-use-system-ffmpeg.patch     |   18 
 community-staging-i686/libchromiumcontent-use-system-tools.patch      |   31 +
 community-staging-i686/use-system-clang.patch                         |   13 
 community-staging-i686/use-system-ffmpeg.patch                        |   10 
 community-staging-i686/use-system-libraries-in-node.patch             |   51 +
 community-staging-i686/use-system-ninja.patch                         |   11 
 community-staging-x86_64/PKGBUILD                                     |  272 ++++++++++
 community-staging-x86_64/allow-i686.patch                             |   14 
 community-staging-x86_64/brightray-dont-update-submodules.patch       |   11 
 community-staging-x86_64/brightray-no-whole-archive.patch             |   22 
 community-staging-x86_64/brightray-use-system-ffmpeg.patch            |   11 
 community-staging-x86_64/chromium-cups.patch                          |   10 
 community-staging-x86_64/chromium-gtk3-hidpi.patch                    |   49 +
 community-staging-x86_64/chromium-gtk3-use-x11-backend.patch          |   12 
 community-staging-x86_64/chromium-unset-madv_free.patch               |   14 
 community-staging-x86_64/chromium-use-system-ffmpeg.patch             |   48 +
 community-staging-x86_64/chromium-use-system-minizip.patch            |   14 
 community-staging-x86_64/chromium-use-system-re2.patch                |   17 
 community-staging-x86_64/default_app-icon.patch                       |   22 
 community-staging-x86_64/dont-bootstrap-libchromiumcontent.patch      |   13 
 community-staging-x86_64/dont-update-submodules.patch                 |   11 
 community-staging-x86_64/dont-use-sysroot.patch                       |   27 
 community-staging-x86_64/electron.desktop                             |    7 
 community-staging-x86_64/gtk3-menu-bar.patch                          |   91 +++
 community-staging-x86_64/gtk3-warnings.patch                          |   65 ++
 community-staging-x86_64/gyp-no-rpath.patch                           |   12 
 community-staging-x86_64/libchromiumcontent-sort-filenames.patch      |   11 
 community-staging-x86_64/libchromiumcontent-static-library-only.patch |   26 
 community-staging-x86_64/libchromiumcontent-use-system-ffmpeg.patch   |   18 
 community-staging-x86_64/libchromiumcontent-use-system-tools.patch    |   31 +
 community-staging-x86_64/use-system-clang.patch                       |   13 
 community-staging-x86_64/use-system-ffmpeg.patch                      |   10 
 community-staging-x86_64/use-system-libraries-in-node.patch           |   51 +
 community-staging-x86_64/use-system-ninja.patch                       |   11 
 56 files changed, 1826 insertions(+)

Copied: electron/repos/community-staging-i686/PKGBUILD (from rev 191542, electron/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD	                        (rev 0)
+++ community-staging-i686/PKGBUILD	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,272 @@
+# $Id$
+# Maintainer: Nicola Squartini <tensor5 at gmail.com>
+
+_chromiumver=53.0.2785.113
+pkgname=electron
+pkgver=1.4.2
+pkgrel=2
+pkgdesc='Build cross platform desktop apps with web technologies'
+arch=('i686' 'x86_64')
+url='http://electron.atom.io/'
+license=('MIT' 'custom')
+depends=('c-ares' 'ffmpeg' 'gtk3' 'http-parser' 'libevent' 'libvpx' 'libxslt'
+         'libxss' 'minizip' 'nss' 're2' 'snappy')
+makedepends=('clang' 'gconf' 'git' 'gperf' 'gtk2' 'harfbuzz-icu' 'jsoncpp'
+             'libexif' 'libgnome-keyring' 'libnotify' 'ninja' 'npm' 'pciutils'
+             'python2' '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)')
+source=("git+https://github.com/electron/electron.git#tag=v${pkgver}"
+        'git+https://github.com/boto/boto.git'
+        'git+https://github.com/electron/brightray.git'
+        'breakpad::git+https://github.com/electron/chromium-breakpad.git'
+        'git+https://github.com/electron/gyp.git'
+        "git+https://github.com/electron/libchromiumcontent.git"
+        'native_mate::git+https://github.com/zcbenz/native-mate.git'
+        'git+https://github.com/electron/node.git'
+        'git+https://github.com/kennethreitz/requests.git'
+        'google-breakpad::git+https://chromium.googlesource.com/breakpad/breakpad/src'
+        "https://github.com/zcbenz/chromium-source-tarball/releases/download/${_chromiumver}/chromium-${_chromiumver}.tar.xz"
+        'electron.desktop'
+        'default_app-icon.patch'
+        'dont-bootstrap-libchromiumcontent.patch'
+        'dont-update-submodules.patch'
+        'dont-use-sysroot.patch'
+        'allow-i686.patch'
+        'gtk3-menu-bar.patch'
+        'gtk3-warnings.patch'
+        'use-system-clang.patch'
+        'use-system-libraries-in-node.patch'
+        'use-system-ninja.patch'
+        'use-system-ffmpeg.patch'
+        'brightray-dont-update-submodules.patch'
+        'brightray-no-whole-archive.patch'
+        'brightray-use-system-ffmpeg.patch'
+        'gyp-no-rpath.patch'
+        'libchromiumcontent-sort-filenames.patch'
+        'libchromiumcontent-static-library-only.patch'
+        'libchromiumcontent-use-system-ffmpeg.patch'
+        'libchromiumcontent-use-system-tools.patch'
+        'chromium-cups.patch'
+        'chromium-gtk3-hidpi.patch'
+        'chromium-gtk3-use-x11-backend.patch'
+        'chromium-unset-madv_free.patch'
+        'chromium-use-system-ffmpeg.patch'
+        'chromium-use-system-minizip.patch'
+        'chromium-use-system-re2.patch'
+       )
+noextract=("chromium-${_chromiumver}.tar.xz")
+sha256sums=('SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'f2768f4c79516344db73569c4844e0d8722dd73a7b0df13ba4747511001b5a2a'
+            '5270db01f3f8aaa5137dec275a02caa832b7f2e37942e068cba8d28b3a29df39'
+            'd9775393428c039f9c0039820e23a394b1efc14024679a8e905864729194ce74'
+            '14dbd1eecb7034d9e19e1f0c61b0a36ed3b9c610db008ff2a6da2a540ade1221'
+            '2a2bc09a40415fd0d57cc8815a158bf32eb4cc2add3b655dddf568c7dc795ff3'
+            '182a2eeb784630e6aa3378a54c5709629658eac8e146764008cb2f2214cd5427'
+            'c209475c16b506d8d888a54c8564718cf9775f450d1867e19e86a03d99a119be'
+            '3f9bc0e3ee316f172b390584287fb93778ad8923f99f8e80ead8cfd5fa23127a'
+            '00506737d1005f76caa8d5505acd4c1d19b42ca62e9f07a26664659447413694'
+            'ce78850a2d2fe343febee597f0fce361ff99be63f6f720fa844d64efc7abb84e'
+            '17cffe3de8c8470f10b78485b1702c4516ba5b0c91689a6afab9dd86f7ab04bc'
+            'dc3286a1947240ab6ec562263af0b3c9971da2a4ab45970e3e664563e877280f'
+            '8191483a1f51ee4a5dd1e7e6bb699ad52321291ef79ffed11bbf8f2b6fb89034'
+            '3bf045dc4ac1cb32491c4a20de313c3056824e75308f97b9e869fd5a2a166480'
+            '47371fb1061cfd8fd4b4f9f4477eb3ea119be1c84554fb2e590e73eda38aa2c2'
+            'eed2633bc4a5dd1c9449d19a8569ae1a682f3fac67177091952c4dba4b69bf95'
+            '68977a78fb41a549eb449dd35f94e0168d647245516397f0ecdfa7a03a147045'
+            '4de540ec76736ef3e14475090916a42c03692c542822b430f1ab3f6d36655511'
+            '7bc4cc154643712556f2cfbcba72bc08d032a52a39bccc61c91a7b230fe9a80e'
+            '6751b93f47c294a5b3ebca0e5fbb608cc034ac5ac0b30872916f42ba2cae4c5e'
+            '2fb2157c854dab173a2ef9b4aa0ab5bb3c0dd077447c4719c7554eee6e0546b6'
+            'f0db776be86c01020c6d28c9b4d2f53391692698231655003dcde43dea4eacb6'
+            '697767af13945702e57a182db561493d5fee431e82b17a776afe7fa1226ce353'
+            '9fd584d6198b915ad35198d1fcb6318e5ecb43b0befca95384148a305e2954dd'
+            'ccba3002243fb1f9a67c8a60af310706caa591d12aef45f1d0f4bda47626f3ab'
+            '7cda59fe372b37beca079adf55b951b4f3a6c7a5490813b729fa145562d2ba12'
+            'bc78d7af8e514ea28caa6c6ccaf78cc3e80044ef862e2ca7978439f183e36179'
+            'bdbc9107800caf6040f5acdc4982c2a3a5cf61d00e4141b590cb9bcb87353429'
+           )
+
+_chromium_flags=('fastbuild=2'
+                 'host_clang=0'
+                 'linux_use_bundled_binutils=0'
+                 'linux_use_bundled_gold=0'
+                 'release_extra_cflags="-O3"'
+                 'remove_webcore_debug_symbols=1'
+                 'use_gconf=0'
+                 'use_gtk3=1'
+                 'use_sysroot=0'
+                 'use_system_expat=1'
+                 'use_system_ffmpeg=1'
+                 'use_system_flac=1'
+                 'use_system_harfbuzz=1'
+                 'use_system_jsoncpp=1'
+                 'use_system_libevent=1'
+                 'use_system_libjpeg=1'
+                 'use_system_libpng=1'
+                 'use_system_libvpx=1'
+                 'use_system_libwebp=1'
+                 'use_system_libxml=1'
+                 'use_system_libxslt=1'
+                 'use_system_re2=1'
+                 'use_system_snappy=1'
+                 'use_system_yasm=1'
+                 'use_system_zlib=1'
+                 'werror=""'  # required by bundled ICU and i686 build
+                )
+
+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-warnings.patch
+  patch -Np1 -i "${srcdir}"/use-system-clang.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}"/allow-i686.patch
+
+  mkdir -p "${srcdir}"/python2-path
+  ln -sf /usr/bin/python2 "${srcdir}/python2-path/python"
+
+  for m in boto breakpad brightray native_mate node requests; do
+    git submodule init vendor/${m}
+    git config submodule.vendor/${m}.url "${srcdir}/${m}"
+  done
+  git submodule update
+
+  cd "${srcdir}"/electron/vendor/breakpad
+  git submodule init src
+  git config submodule.src.url "${srcdir}"/google-breakpad
+  git submodule update
+
+  cd "${srcdir}"/electron/vendor/brightray
+  patch -Np1 -i "${srcdir}"/brightray-dont-update-submodules.patch
+  patch -Np1 -i "${srcdir}"/brightray-use-system-ffmpeg.patch
+  patch -Np1 -i "${srcdir}"/brightray-no-whole-archive.patch
+  for m in libchromiumcontent gyp; do
+    git submodule init vendor/${m}
+    git config submodule.vendor/${m}.url "${srcdir}/${m}"
+  done
+  git submodule update
+  # 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 vpx libwebpdemux libxml-2.0 libxslt)', '-ljpeg', '-lre2', '-lsnappy', '-latomic',/" \
+      -e 's/gtk+-2\.0/gtk+-3.0/' \
+      -i brightray.gyp
+
+  cd "${srcdir}"/electron/vendor/brightray/vendor/gyp
+  # Remove a useless $ORIGIN/lib/ rpath from the electron binary
+  patch -Np1 -i "${srcdir}"/gyp-no-rpath.patch
+
+  cd "${srcdir}"/electron/vendor/brightray/vendor/libchromiumcontent
+  git submodule update --init vendor/python-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-use-system-ffmpeg.patch
+  patch -Np1 -i "${srcdir}"/libchromiumcontent-static-library-only.patch
+  rm patches/third_party/ffmpeg/ffmpeg.patch  # Use system ffmpeg
+  echo 'Extracting chromium source...'
+  tar -xJf "${srcdir}"/chromium-${_chromiumver}.tar.xz
+  mv chromium-${_chromiumver} src
+  if [ ! -e src/.version ]; then
+    echo "${_chromiumver}" > src/.version
+  fi
+  cd src
+  patch -Np1 -i "${srcdir}"/chromium-cups.patch  # fixes build with CUPS 2.2
+  patch -Np1 -i "${srcdir}"/chromium-gtk3-hidpi.patch
+  patch -Np1 -i "${srcdir}"/chromium-gtk3-use-x11-backend.patch
+  patch -Np1 -i "${srcdir}"/chromium-unset-madv_free.patch  # fixes crash with kernels < 4.5
+  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
+  python2 build/linux/unbundle/replace_gyp_files.py "${_chromium_flags[@]/#/-D}"
+}
+
+build() {
+  export PATH="${srcdir}/python2-path:${PATH}"
+
+  if [ "${CARCH}" == 'x86_64' ]; then
+    _target=x64
+  else
+    _target=ia32
+  fi
+
+  cd "${srcdir}"/electron
+  LDFLAGS="${LDFLAGS} -Wl,-z,noexecstack"
+  script/bootstrap.py --verbose \
+                      --target_arch=${_target} \
+                      --clang_dir=/usr \
+                      --build_libchromiumcontent \
+                      --defines="${_chromium_flags[*]}"
+  script/build.py -c Release
+}
+
+package() {
+  cd "${srcdir}"/electron
+
+  _cc="${srcdir}"/electron/vendor/brightray/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 brightray native_mate node; do
+    install -m644 vendor/${lib}/LICENSE \
+            "${pkgdir}"/usr/share/licenses/electron/LICENSE-${lib}
+  done
+  install -m644 vendor/brightray/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 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-i686/allow-i686.patch (from rev 191542, electron/trunk/allow-i686.patch)
===================================================================
--- community-staging-i686/allow-i686.patch	                        (rev 0)
+++ community-staging-i686/allow-i686.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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-i686/brightray-dont-update-submodules.patch (from rev 191542, electron/trunk/brightray-dont-update-submodules.patch)
===================================================================
--- community-staging-i686/brightray-dont-update-submodules.patch	                        (rev 0)
+++ community-staging-i686/brightray-dont-update-submodules.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,11 @@
+--- a/script/bootstrap
++++ b/script/bootstrap
+@@ -24,7 +24,7 @@ def main():
+     print "Error: All options of libchromiumcontent are required OR let " \
+           "brightray choose it"
+     sys.exit(0)
+-  update_submodules()
++  # update_submodules()
+   setup_libchromiumcontent(args.dev, args.commit, args.target_arch, args.url,
+                            args.libcc_source_path,
+                            args.libcc_shared_library_path,

Copied: electron/repos/community-staging-i686/brightray-no-whole-archive.patch (from rev 191542, electron/trunk/brightray-no-whole-archive.patch)
===================================================================
--- community-staging-i686/brightray-no-whole-archive.patch	                        (rev 0)
+++ community-staging-i686/brightray-no-whole-archive.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,22 @@
+--- a/brightray.gyp
++++ b/brightray.gyp
+@@ -39,14 +39,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-i686/brightray-use-system-ffmpeg.patch (from rev 191542, electron/trunk/brightray-use-system-ffmpeg.patch)
===================================================================
--- community-staging-i686/brightray-use-system-ffmpeg.patch	                        (rev 0)
+++ community-staging-i686/brightray-use-system-ffmpeg.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,11 @@
+--- a/brightray.gyp
++++ b/brightray.gyp
+@@ -104,8 +104,6 @@
+             }, {
+               'link_settings': {
+                 'libraries': [
+-                  # Link with ffmpeg.
+-                  '<(libchromiumcontent_dir)/libffmpeg.so',
+                   # Following libraries are required by libchromiumcontent:
+                   '-lasound',
+                   '-lcap',

Copied: electron/repos/community-staging-i686/chromium-cups.patch (from rev 191542, electron/trunk/chromium-cups.patch)
===================================================================
--- community-staging-i686/chromium-cups.patch	                        (rev 0)
+++ community-staging-i686/chromium-cups.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,10 @@
+--- a/printing/backend/print_backend_cups.cc
++++ b/printing/backend/print_backend_cups.cc
+@@ -4,6 +4,7 @@
+ 
+ #include "printing/backend/print_backend_cups.h"
+ 
++#include <cups/ppd.h>
+ #include <dlfcn.h>
+ #include <errno.h>
+ #include <pthread.h>

Copied: electron/repos/community-staging-i686/chromium-gtk3-hidpi.patch (from rev 191542, electron/trunk/chromium-gtk3-hidpi.patch)
===================================================================
--- community-staging-i686/chromium-gtk3-hidpi.patch	                        (rev 0)
+++ community-staging-i686/chromium-gtk3-hidpi.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,49 @@
+--- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
++++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
+@@ -454,12 +454,18 @@
+ 
+ // Queries GTK for its font DPI setting and returns the number of pixels in a
+ // point.
++#if GTK_MAJOR_VERSION == 2
+ double GetPixelsInPoint(float device_scale_factor) {
++#else
++double GetPixelsInPoint() {
++#endif
+   double dpi = GetDPI();
+ 
++#if GTK_MAJOR_VERSION == 2
+   // Take device_scale_factor into account — if Chrome already scales the
+   // entire UI up by 2x, we should not also scale up.
+   dpi /= device_scale_factor;
++#endif
+ 
+   // There are 72 points in an inch.
+   return dpi / 72.0;
+@@ -1371,8 +1377,13 @@
+     // Round the value when converting to pixels to match GTK's logic.
+     const double size_points = pango_font_description_get_size(desc) /
+         static_cast<double>(PANGO_SCALE);
++#if GTK_MAJOR_VERSION == 2
+     default_font_size_pixels_ = static_cast<int>(
+         GetPixelsInPoint(device_scale_factor_) * size_points + 0.5);
++#else
++    default_font_size_pixels_ = static_cast<int>(
++        GetPixelsInPoint() * size_points + 0.5);
++#endif
+     query.point_size = static_cast<int>(size_points);
+   }
+ 
+@@ -1405,8 +1416,13 @@
+ float Gtk2UI::GetDeviceScaleFactor() const {
+   if (display::Display::HasForceDeviceScaleFactor())
+     return display::Display::GetForcedDeviceScaleFactor();
++#if GTK_MAJOR_VERSION == 2
+   const int kCSSDefaultDPI = 96;
+   const float scale = GetDPI() / kCSSDefaultDPI;
++#else
++  const float scale = static_cast<float>(gdk_window_get_scale_factor(
++      gdk_screen_get_root_window(gdk_screen_get_default())));
++#endif
+ 
+   // Blacklist scaling factors <130% (crbug.com/484400) and round
+   // to 1 decimal to prevent rendering problems (crbug.com/485183).

Copied: electron/repos/community-staging-i686/chromium-gtk3-use-x11-backend.patch (from rev 191542, electron/trunk/chromium-gtk3-use-x11-backend.patch)
===================================================================
--- community-staging-i686/chromium-gtk3-use-x11-backend.patch	                        (rev 0)
+++ community-staging-i686/chromium-gtk3-use-x11-backend.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,12 @@
+--- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
++++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
+@@ -488,6 +488,9 @@
+       default_font_weight_(gfx::Font::Weight::NORMAL),
+       middle_click_action_(GetDefaultMiddleClickAction()),
+       device_scale_factor_(1.0) {
++#if GTK_MAJOR_VERSION > 2
++  gdk_set_allowed_backends("x11");
++#endif
+   GtkInitFromCommandLine(*base::CommandLine::ForCurrentProcess());
+ }
+ 

Copied: electron/repos/community-staging-i686/chromium-unset-madv_free.patch (from rev 191542, electron/trunk/chromium-unset-madv_free.patch)
===================================================================
--- community-staging-i686/chromium-unset-madv_free.patch	                        (rev 0)
+++ community-staging-i686/chromium-unset-madv_free.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,14 @@
+--- a/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
++++ b/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
+@@ -41,6 +41,11 @@
+ #include <errno.h>
+ #include <sys/mman.h>
+ 
++#if OS(LINUX) && defined(MADV_FREE)
++// Added in Linux 4.5, but it breaks the sandbox.
++#undef MADV_FREE
++#endif
++
+ #ifndef MADV_FREE
+ #define MADV_FREE MADV_DONTNEED
+ #endif

Copied: electron/repos/community-staging-i686/chromium-use-system-ffmpeg.patch (from rev 191542, electron/trunk/chromium-use-system-ffmpeg.patch)
===================================================================
--- community-staging-i686/chromium-use-system-ffmpeg.patch	                        (rev 0)
+++ community-staging-i686/chromium-use-system-ffmpeg.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,48 @@
+--- a/media/ffmpeg/ffmpeg_common.h
++++ b/media/ffmpeg/ffmpeg_common.h
+@@ -22,10 +22,6 @@
+ 
+ // Include FFmpeg header files.
+ extern "C" {
+-// Disable deprecated features which result in spammy compile warnings.  This
+-// list of defines must mirror those in the 'defines' section of BUILD.gn file &
+-// ffmpeg.gyp file or the headers below will generate different structures!
+-#define FF_API_CONVERGENCE_DURATION 0
+ // 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,
+@@ -39,7 +35,6 @@
+ MSVC_PUSH_DISABLE_WARNING(4244);
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
+-#include <libavformat/internal.h>
+ #include <libavformat/avio.h>
+ #include <libavutil/avutil.h>
+ #include <libavutil/imgutils.h>
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -1106,24 +1106,6 @@
+   // If no estimate is found, the stream entry will be kInfiniteDuration().
+   std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
+                                                     kInfiniteDuration());
+-  const AVFormatInternal* internal = format_context->internal;
+-  if (internal && internal->packet_buffer &&
+-      format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
+-    struct AVPacketList* packet_buffer = internal->packet_buffer;
+-    while (packet_buffer != internal->packet_buffer_end) {
+-      DCHECK_LT(static_cast<size_t>(packet_buffer->pkt.stream_index),
+-                start_time_estimates.size());
+-      const AVStream* stream =
+-          format_context->streams[packet_buffer->pkt.stream_index];
+-      if (packet_buffer->pkt.pts != static_cast<int64_t>(AV_NOPTS_VALUE)) {
+-        const base::TimeDelta packet_pts =
+-            ConvertFromTimeBase(stream->time_base, packet_buffer->pkt.pts);
+-        if (packet_pts < start_time_estimates[stream->index])
+-          start_time_estimates[stream->index] = packet_pts;
+-      }
+-      packet_buffer = packet_buffer->next;
+-    }
+-  }
+ 
+   std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
+   AVStream* audio_stream = NULL;

Copied: electron/repos/community-staging-i686/chromium-use-system-minizip.patch (from rev 191542, electron/trunk/chromium-use-system-minizip.patch)
===================================================================
--- community-staging-i686/chromium-use-system-minizip.patch	                        (rev 0)
+++ community-staging-i686/chromium-use-system-minizip.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,14 @@
+--- a/third_party/zlib/google/zip_reader.cc
++++ b/third_party/zlib/google/zip_reader.cc
+@@ -279,10 +279,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-i686/chromium-use-system-re2.patch (from rev 191542, electron/trunk/chromium-use-system-re2.patch)
===================================================================
--- community-staging-i686/chromium-use-system-re2.patch	                        (rev 0)
+++ community-staging-i686/chromium-use-system-re2.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,17 @@
+--- a/build/linux/unbundle/re2.gyp
++++ b/build/linux/unbundle/re2.gyp
+@@ -8,13 +8,12 @@
+       'target_name': 're2',
+       'type': 'none',
+       'variables': {
+-        'headers_root_path': '.',
++        'headers_root_path': 'src',
+         'header_filenames': [
+           're2/filtered_re2.h',
+           're2/re2.h',
+           're2/set.h',
+           're2/stringpiece.h',
+-          're2/variadic_function.h',
+         ],
+         'shim_generator_additional_args': [
+           # Chromium copy of re2 is patched to rename POSIX to POSIX_SYNTAX

Copied: electron/repos/community-staging-i686/default_app-icon.patch (from rev 191542, electron/trunk/default_app-icon.patch)
===================================================================
--- community-staging-i686/default_app-icon.patch	                        (rev 0)
+++ community-staging-i686/default_app-icon.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,22 @@
+--- a/default_app/default_app.js
++++ b/default_app/default_app.js
+@@ -17,9 +17,6 @@ exports.load = (appUrl) => {
+       backgroundColor: '#FFFFFF',
+       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
+@@ -79,7 +79,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-i686/dont-bootstrap-libchromiumcontent.patch (from rev 191542, electron/trunk/dont-bootstrap-libchromiumcontent.patch)
===================================================================
--- community-staging-i686/dont-bootstrap-libchromiumcontent.patch	                        (rev 0)
+++ community-staging-i686/dont-bootstrap-libchromiumcontent.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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
+@@ -28,7 +28,7 @@ def main():
+   update = os.path.join(script_dir, 'update')
+   build = os.path.join(script_dir, 'build')
+   create_dist = os.path.join(script_dir, 'create-dist')
+-  execute_stdout([sys.executable, bootstrap])
++  # execute_stdout([sys.executable, bootstrap])
+   execute_stdout([sys.executable, update, '-t', args.target_arch,
+                   '--defines', args.defines])
+   execute_stdout([sys.executable, build, '-R', '-t', args.target_arch])

Copied: electron/repos/community-staging-i686/dont-update-submodules.patch (from rev 191542, electron/trunk/dont-update-submodules.patch)
===================================================================
--- community-staging-i686/dont-update-submodules.patch	                        (rev 0)
+++ community-staging-i686/dont-update-submodules.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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-i686/dont-use-sysroot.patch (from rev 191542, electron/trunk/dont-use-sysroot.patch)
===================================================================
--- community-staging-i686/dont-use-sysroot.patch	                        (rev 0)
+++ community-staging-i686/dont-use-sysroot.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,27 @@
+--- a/script/bootstrap.py
++++ b/script/bootstrap.py
+@@ -57,9 +57,6 @@
+                       libcc_source_path, libcc_shared_library_path,
+                       libcc_static_library_path)
+ 
+-  if PLATFORM == 'linux':
+-    download_sysroot(args.target_arch)
+-
+   create_chrome_version_h()
+   touch_config_gypi()
+   run_update(defines, args.msvs)
+--- a/toolchain.gypi
++++ b/toolchain.gypi
+@@ -53,10 +53,10 @@
+               'sysroot%': '<(source_root)/vendor/debian_wheezy_arm-sysroot',
+             }],
+             ['target_arch=="ia32"', {
+-              'sysroot%': '<(source_root)/vendor/debian_wheezy_i386-sysroot',
++              'sysroot%': '/',
+             }],
+             ['target_arch=="x64"', {
+-              'sysroot%': '<(source_root)/vendor/debian_wheezy_amd64-sysroot',
++              'sysroot%': '/',
+             }],
+           ],
+         },

Copied: electron/repos/community-staging-i686/electron.desktop (from rev 191542, electron/trunk/electron.desktop)
===================================================================
--- community-staging-i686/electron.desktop	                        (rev 0)
+++ community-staging-i686/electron.desktop	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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-i686/gtk3-menu-bar.patch (from rev 191542, electron/trunk/gtk3-menu-bar.patch)
===================================================================
--- community-staging-i686/gtk3-menu-bar.patch	                        (rev 0)
+++ community-staging-i686/gtk3-menu-bar.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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/libgtk2ui/skia_utils_gtk2.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 = libgtk2ui::GdkColorToSkColor(style->fg[GTK_STATE_NORMAL]);
+-  *disabled = libgtk2ui::GdkColorToSkColor(style->fg[GTK_STATE_INSENSITIVE]);
+-  *highlight = libgtk2ui::GdkColorToSkColor(style->fg[GTK_STATE_SELECTED]);
+-  *hover = libgtk2ui::GdkColorToSkColor(style->fg[GTK_STATE_PRELIGHT]);
+-  *background = libgtk2ui::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-i686/gtk3-warnings.patch (from rev 191542, electron/trunk/gtk3-warnings.patch)
===================================================================
--- community-staging-i686/gtk3-warnings.patch	                        (rev 0)
+++ community-staging-i686/gtk3-warnings.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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"
+@@ -43,20 +45,20 @@ class FileChooserDialog {
+                     const Filters& filters)
+       : parent_(static_cast<atom::NativeWindowViews*>(parent_window)),
+         filters_(filters) {
+-    const char* confirm_text = GTK_STOCK_OK;
++    const char* confirm_text = _("_OK");
+ 
+     if (!button_label.empty())
+       confirm_text = 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(
+         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"
+@@ -107,13 +109,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-i686/gyp-no-rpath.patch (from rev 191542, electron/trunk/gyp-no-rpath.patch)
===================================================================
--- community-staging-i686/gyp-no-rpath.patch	                        (rev 0)
+++ community-staging-i686/gyp-no-rpath.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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-i686/libchromiumcontent-sort-filenames.patch (from rev 191542, electron/trunk/libchromiumcontent-sort-filenames.patch)
===================================================================
--- community-staging-i686/libchromiumcontent-sort-filenames.patch	                        (rev 0)
+++ community-staging-i686/libchromiumcontent-sort-filenames.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,11 @@
+--- a/tools/generate_filenames_gypi.py
++++ b/tools/generate_filenames_gypi.py
+@@ -98,7 +98,7 @@
+ 
+ 
+ def searh_files(src, suffix, exclude):
+-  files = glob.glob(os.path.join(src, '*.' + suffix))
++  files = sorted(glob.glob(os.path.join(src, '*.' + suffix)))
+   files = [f for f in files if os.path.basename(f) not in exclude]
+   return ([os.path.abspath(f) for f in files if not is_v8_library(f)],
+           [os.path.abspath(f) for f in files if is_v8_library(f)])

Copied: electron/repos/community-staging-i686/libchromiumcontent-static-library-only.patch (from rev 191542, electron/trunk/libchromiumcontent-static-library-only.patch)
===================================================================
--- community-staging-i686/libchromiumcontent-static-library-only.patch	                        (rev 0)
+++ community-staging-i686/libchromiumcontent-static-library-only.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,26 @@
+diff --git a/script/build b/script/build
+index 5e06fd1..fdf8b95 100755
+--- a/script/build
++++ b/script/build
+@@ -11,7 +11,7 @@ from lib.util import get_configuration, get_output_dir
+ 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':
+diff --git a/script/update b/script/update
+index 62828ce..e757fc6 100755
+--- a/script/update
++++ b/script/update
+@@ -18,7 +18,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']
+ 
+ TARBALL_REPO = 'zcbenz/chromium-source-tarball'
+ TARBALL_URL = 'https://github.com/{0}/releases/download/{1}/chromium-{1}.tar.xz'

Copied: electron/repos/community-staging-i686/libchromiumcontent-use-system-ffmpeg.patch (from rev 191542, electron/trunk/libchromiumcontent-use-system-ffmpeg.patch)
===================================================================
--- community-staging-i686/libchromiumcontent-use-system-ffmpeg.patch	                        (rev 0)
+++ community-staging-i686/libchromiumcontent-use-system-ffmpeg.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,18 @@
+--- a/script/create-dist
++++ b/script/create-dist
+@@ -93,7 +93,6 @@
+     'libsecurity_state.a',
+     'libcookie_config.a',
+     'libos_crypt.a',
+-    os.path.join('lib', 'libffmpeg.so'),
+   ],
+   'win32': [
+     'chromedriver.exe',
+@@ -314,7 +313,6 @@
+       copy_generated_sources(target_arch, component, output_dir)
+       copy_locales(target_arch, component, output_dir)
+ 
+-  copy_ffmpeg(target_arch)
+   copy_sources()
+   generate_licenses()
+   if not args.no_zip:

Copied: electron/repos/community-staging-i686/libchromiumcontent-use-system-tools.patch (from rev 191542, electron/trunk/libchromiumcontent-use-system-tools.patch)
===================================================================
--- community-staging-i686/libchromiumcontent-use-system-tools.patch	                        (rev 0)
+++ community-staging-i686/libchromiumcontent-use-system-tools.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,31 @@
+diff --git a/script/build b/script/build
+index 8259f49..c4ffd5d 100755
+--- a/script/build
++++ b/script/build
+@@ -13,7 +13,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)
+ 
+diff --git a/script/update b/script/update
+index b9f5127..499cebb 100755
+--- a/script/update
++++ b/script/update
+@@ -31,13 +31,9 @@ def main():
+   if not is_source_tarball_updated(version):
+     download_source_tarball(version)
+ 
+-  if sys.platform == 'linux2':
+-    install_sysroot()
+-
+   target_arch = args.target_arch
+   return (apply_patches() or
+           copy_chromiumcontent_files() or
+-          update_clang() or
+           run_gyp(target_arch, args.defines))
+ 
+ 

Copied: electron/repos/community-staging-i686/use-system-clang.patch (from rev 191542, electron/trunk/use-system-clang.patch)
===================================================================
--- community-staging-i686/use-system-clang.patch	                        (rev 0)
+++ community-staging-i686/use-system-clang.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,13 @@
+--- a/script/bootstrap.py
++++ b/script/bootstrap.py
+@@ -165,8 +165,8 @@ def update_node_modules(dirname, env=None):
+   if env is None:
+     env = os.environ.copy()
+   if PLATFORM == 'linux':
+-    # Use prebuilt clang for building native modules.
+-    set_clang_env(env)
++    env['CC']  = 'clang'
++    env['CXX'] = 'clang++'
+     env['npm_config_clang'] = '1'
+   with scoped_cwd(dirname):
+     args = [NPM, 'install']

Copied: electron/repos/community-staging-i686/use-system-ffmpeg.patch (from rev 191542, electron/trunk/use-system-ffmpeg.patch)
===================================================================
--- community-staging-i686/use-system-ffmpeg.patch	                        (rev 0)
+++ community-staging-i686/use-system-ffmpeg.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,10 @@
+--- a/electron.gyp
++++ b/electron.gyp
+@@ -182,7 +182,6 @@
+                   }, {
+                     'copied_libraries': [
+                       '<(PRODUCT_DIR)/lib/libnode.so',
+-                      '<(libchromiumcontent_dir)/libffmpeg.so',
+                     ],
+                   }],
+                 ],

Copied: electron/repos/community-staging-i686/use-system-libraries-in-node.patch (from rev 191542, electron/trunk/use-system-libraries-in-node.patch)
===================================================================
--- community-staging-i686/use-system-libraries-in-node.patch	                        (rev 0)
+++ community-staging-i686/use-system-libraries-in-node.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,51 @@
+--- 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_openssl': 'true',
+     'node_shared_v8': 'true',
+-    'node_shared_zlib': 'false',
++    'node_shared_zlib': 'true',
+     'node_tag': '',
+     'node_use_dtrace': 'false',
+     'node_use_etw': 'false',
+@@ -109,17 +109,6 @@
+         'conditions': [
+           ['OS=="linux"', {
+             'cflags': [
+-              '-Wno-parentheses-equality',
+-              '-Wno-unused-function',
+-              '-Wno-sometimes-uninitialized',
+-              '-Wno-pointer-sign',
+-              '-Wno-string-plus-int',
+-              '-Wno-unused-variable',
+-              '-Wno-unused-value',
+-              '-Wno-deprecated-declarations',
+-              '-Wno-return-type',
+-              '-Wno-shift-negative-value',
+-              '-Wno-varargs', # https://git.io/v6Olj
+               # Required when building as shared library.
+               '-fPIC',
+             ],
+@@ -198,6 +187,13 @@
+             ],
+           }],
+           ['OS=="linux" and libchromiumcontent_component==0', {
++            'libraries': [
++              '-lcares',
++              '-lcrypto',
++              '-lhttp_parser',
++              '-lssl',
++              '-lz',
++            ],
+             # Prevent the linker from stripping symbols.
+             'ldflags': [
+               '-Wl,--whole-archive',

Copied: electron/repos/community-staging-i686/use-system-ninja.patch (from rev 191542, electron/trunk/use-system-ninja.patch)
===================================================================
--- community-staging-i686/use-system-ninja.patch	                        (rev 0)
+++ community-staging-i686/use-system-ninja.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,11 @@
+--- a/script/build.py
++++ b/script/build.py
+@@ -19,7 +19,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'
+ 

Copied: electron/repos/community-staging-x86_64/PKGBUILD (from rev 191542, electron/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD	                        (rev 0)
+++ community-staging-x86_64/PKGBUILD	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,272 @@
+# $Id$
+# Maintainer: Nicola Squartini <tensor5 at gmail.com>
+
+_chromiumver=53.0.2785.113
+pkgname=electron
+pkgver=1.4.2
+pkgrel=2
+pkgdesc='Build cross platform desktop apps with web technologies'
+arch=('i686' 'x86_64')
+url='http://electron.atom.io/'
+license=('MIT' 'custom')
+depends=('c-ares' 'ffmpeg' 'gtk3' 'http-parser' 'libevent' 'libvpx' 'libxslt'
+         'libxss' 'minizip' 'nss' 're2' 'snappy')
+makedepends=('clang' 'gconf' 'git' 'gperf' 'gtk2' 'harfbuzz-icu' 'jsoncpp'
+             'libexif' 'libgnome-keyring' 'libnotify' 'ninja' 'npm' 'pciutils'
+             'python2' '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)')
+source=("git+https://github.com/electron/electron.git#tag=v${pkgver}"
+        'git+https://github.com/boto/boto.git'
+        'git+https://github.com/electron/brightray.git'
+        'breakpad::git+https://github.com/electron/chromium-breakpad.git'
+        'git+https://github.com/electron/gyp.git'
+        "git+https://github.com/electron/libchromiumcontent.git"
+        'native_mate::git+https://github.com/zcbenz/native-mate.git'
+        'git+https://github.com/electron/node.git'
+        'git+https://github.com/kennethreitz/requests.git'
+        'google-breakpad::git+https://chromium.googlesource.com/breakpad/breakpad/src'
+        "https://github.com/zcbenz/chromium-source-tarball/releases/download/${_chromiumver}/chromium-${_chromiumver}.tar.xz"
+        'electron.desktop'
+        'default_app-icon.patch'
+        'dont-bootstrap-libchromiumcontent.patch'
+        'dont-update-submodules.patch'
+        'dont-use-sysroot.patch'
+        'allow-i686.patch'
+        'gtk3-menu-bar.patch'
+        'gtk3-warnings.patch'
+        'use-system-clang.patch'
+        'use-system-libraries-in-node.patch'
+        'use-system-ninja.patch'
+        'use-system-ffmpeg.patch'
+        'brightray-dont-update-submodules.patch'
+        'brightray-no-whole-archive.patch'
+        'brightray-use-system-ffmpeg.patch'
+        'gyp-no-rpath.patch'
+        'libchromiumcontent-sort-filenames.patch'
+        'libchromiumcontent-static-library-only.patch'
+        'libchromiumcontent-use-system-ffmpeg.patch'
+        'libchromiumcontent-use-system-tools.patch'
+        'chromium-cups.patch'
+        'chromium-gtk3-hidpi.patch'
+        'chromium-gtk3-use-x11-backend.patch'
+        'chromium-unset-madv_free.patch'
+        'chromium-use-system-ffmpeg.patch'
+        'chromium-use-system-minizip.patch'
+        'chromium-use-system-re2.patch'
+       )
+noextract=("chromium-${_chromiumver}.tar.xz")
+sha256sums=('SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'f2768f4c79516344db73569c4844e0d8722dd73a7b0df13ba4747511001b5a2a'
+            '5270db01f3f8aaa5137dec275a02caa832b7f2e37942e068cba8d28b3a29df39'
+            'd9775393428c039f9c0039820e23a394b1efc14024679a8e905864729194ce74'
+            '14dbd1eecb7034d9e19e1f0c61b0a36ed3b9c610db008ff2a6da2a540ade1221'
+            '2a2bc09a40415fd0d57cc8815a158bf32eb4cc2add3b655dddf568c7dc795ff3'
+            '182a2eeb784630e6aa3378a54c5709629658eac8e146764008cb2f2214cd5427'
+            'c209475c16b506d8d888a54c8564718cf9775f450d1867e19e86a03d99a119be'
+            '3f9bc0e3ee316f172b390584287fb93778ad8923f99f8e80ead8cfd5fa23127a'
+            '00506737d1005f76caa8d5505acd4c1d19b42ca62e9f07a26664659447413694'
+            'ce78850a2d2fe343febee597f0fce361ff99be63f6f720fa844d64efc7abb84e'
+            '17cffe3de8c8470f10b78485b1702c4516ba5b0c91689a6afab9dd86f7ab04bc'
+            'dc3286a1947240ab6ec562263af0b3c9971da2a4ab45970e3e664563e877280f'
+            '8191483a1f51ee4a5dd1e7e6bb699ad52321291ef79ffed11bbf8f2b6fb89034'
+            '3bf045dc4ac1cb32491c4a20de313c3056824e75308f97b9e869fd5a2a166480'
+            '47371fb1061cfd8fd4b4f9f4477eb3ea119be1c84554fb2e590e73eda38aa2c2'
+            'eed2633bc4a5dd1c9449d19a8569ae1a682f3fac67177091952c4dba4b69bf95'
+            '68977a78fb41a549eb449dd35f94e0168d647245516397f0ecdfa7a03a147045'
+            '4de540ec76736ef3e14475090916a42c03692c542822b430f1ab3f6d36655511'
+            '7bc4cc154643712556f2cfbcba72bc08d032a52a39bccc61c91a7b230fe9a80e'
+            '6751b93f47c294a5b3ebca0e5fbb608cc034ac5ac0b30872916f42ba2cae4c5e'
+            '2fb2157c854dab173a2ef9b4aa0ab5bb3c0dd077447c4719c7554eee6e0546b6'
+            'f0db776be86c01020c6d28c9b4d2f53391692698231655003dcde43dea4eacb6'
+            '697767af13945702e57a182db561493d5fee431e82b17a776afe7fa1226ce353'
+            '9fd584d6198b915ad35198d1fcb6318e5ecb43b0befca95384148a305e2954dd'
+            'ccba3002243fb1f9a67c8a60af310706caa591d12aef45f1d0f4bda47626f3ab'
+            '7cda59fe372b37beca079adf55b951b4f3a6c7a5490813b729fa145562d2ba12'
+            'bc78d7af8e514ea28caa6c6ccaf78cc3e80044ef862e2ca7978439f183e36179'
+            'bdbc9107800caf6040f5acdc4982c2a3a5cf61d00e4141b590cb9bcb87353429'
+           )
+
+_chromium_flags=('fastbuild=2'
+                 'host_clang=0'
+                 'linux_use_bundled_binutils=0'
+                 'linux_use_bundled_gold=0'
+                 'release_extra_cflags="-O3"'
+                 'remove_webcore_debug_symbols=1'
+                 'use_gconf=0'
+                 'use_gtk3=1'
+                 'use_sysroot=0'
+                 'use_system_expat=1'
+                 'use_system_ffmpeg=1'
+                 'use_system_flac=1'
+                 'use_system_harfbuzz=1'
+                 'use_system_jsoncpp=1'
+                 'use_system_libevent=1'
+                 'use_system_libjpeg=1'
+                 'use_system_libpng=1'
+                 'use_system_libvpx=1'
+                 'use_system_libwebp=1'
+                 'use_system_libxml=1'
+                 'use_system_libxslt=1'
+                 'use_system_re2=1'
+                 'use_system_snappy=1'
+                 'use_system_yasm=1'
+                 'use_system_zlib=1'
+                 'werror=""'  # required by bundled ICU and i686 build
+                )
+
+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-warnings.patch
+  patch -Np1 -i "${srcdir}"/use-system-clang.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}"/allow-i686.patch
+
+  mkdir -p "${srcdir}"/python2-path
+  ln -sf /usr/bin/python2 "${srcdir}/python2-path/python"
+
+  for m in boto breakpad brightray native_mate node requests; do
+    git submodule init vendor/${m}
+    git config submodule.vendor/${m}.url "${srcdir}/${m}"
+  done
+  git submodule update
+
+  cd "${srcdir}"/electron/vendor/breakpad
+  git submodule init src
+  git config submodule.src.url "${srcdir}"/google-breakpad
+  git submodule update
+
+  cd "${srcdir}"/electron/vendor/brightray
+  patch -Np1 -i "${srcdir}"/brightray-dont-update-submodules.patch
+  patch -Np1 -i "${srcdir}"/brightray-use-system-ffmpeg.patch
+  patch -Np1 -i "${srcdir}"/brightray-no-whole-archive.patch
+  for m in libchromiumcontent gyp; do
+    git submodule init vendor/${m}
+    git config submodule.vendor/${m}.url "${srcdir}/${m}"
+  done
+  git submodule update
+  # 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 vpx libwebpdemux libxml-2.0 libxslt)', '-ljpeg', '-lre2', '-lsnappy', '-latomic',/" \
+      -e 's/gtk+-2\.0/gtk+-3.0/' \
+      -i brightray.gyp
+
+  cd "${srcdir}"/electron/vendor/brightray/vendor/gyp
+  # Remove a useless $ORIGIN/lib/ rpath from the electron binary
+  patch -Np1 -i "${srcdir}"/gyp-no-rpath.patch
+
+  cd "${srcdir}"/electron/vendor/brightray/vendor/libchromiumcontent
+  git submodule update --init vendor/python-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-use-system-ffmpeg.patch
+  patch -Np1 -i "${srcdir}"/libchromiumcontent-static-library-only.patch
+  rm patches/third_party/ffmpeg/ffmpeg.patch  # Use system ffmpeg
+  echo 'Extracting chromium source...'
+  tar -xJf "${srcdir}"/chromium-${_chromiumver}.tar.xz
+  mv chromium-${_chromiumver} src
+  if [ ! -e src/.version ]; then
+    echo "${_chromiumver}" > src/.version
+  fi
+  cd src
+  patch -Np1 -i "${srcdir}"/chromium-cups.patch  # fixes build with CUPS 2.2
+  patch -Np1 -i "${srcdir}"/chromium-gtk3-hidpi.patch
+  patch -Np1 -i "${srcdir}"/chromium-gtk3-use-x11-backend.patch
+  patch -Np1 -i "${srcdir}"/chromium-unset-madv_free.patch  # fixes crash with kernels < 4.5
+  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
+  python2 build/linux/unbundle/replace_gyp_files.py "${_chromium_flags[@]/#/-D}"
+}
+
+build() {
+  export PATH="${srcdir}/python2-path:${PATH}"
+
+  if [ "${CARCH}" == 'x86_64' ]; then
+    _target=x64
+  else
+    _target=ia32
+  fi
+
+  cd "${srcdir}"/electron
+  LDFLAGS="${LDFLAGS} -Wl,-z,noexecstack"
+  script/bootstrap.py --verbose \
+                      --target_arch=${_target} \
+                      --clang_dir=/usr \
+                      --build_libchromiumcontent \
+                      --defines="${_chromium_flags[*]}"
+  script/build.py -c Release
+}
+
+package() {
+  cd "${srcdir}"/electron
+
+  _cc="${srcdir}"/electron/vendor/brightray/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 brightray native_mate node; do
+    install -m644 vendor/${lib}/LICENSE \
+            "${pkgdir}"/usr/share/licenses/electron/LICENSE-${lib}
+  done
+  install -m644 vendor/brightray/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 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 191542, electron/trunk/allow-i686.patch)
===================================================================
--- community-staging-x86_64/allow-i686.patch	                        (rev 0)
+++ community-staging-x86_64/allow-i686.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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/brightray-dont-update-submodules.patch (from rev 191542, electron/trunk/brightray-dont-update-submodules.patch)
===================================================================
--- community-staging-x86_64/brightray-dont-update-submodules.patch	                        (rev 0)
+++ community-staging-x86_64/brightray-dont-update-submodules.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,11 @@
+--- a/script/bootstrap
++++ b/script/bootstrap
+@@ -24,7 +24,7 @@ def main():
+     print "Error: All options of libchromiumcontent are required OR let " \
+           "brightray choose it"
+     sys.exit(0)
+-  update_submodules()
++  # update_submodules()
+   setup_libchromiumcontent(args.dev, args.commit, args.target_arch, args.url,
+                            args.libcc_source_path,
+                            args.libcc_shared_library_path,

Copied: electron/repos/community-staging-x86_64/brightray-no-whole-archive.patch (from rev 191542, electron/trunk/brightray-no-whole-archive.patch)
===================================================================
--- community-staging-x86_64/brightray-no-whole-archive.patch	                        (rev 0)
+++ community-staging-x86_64/brightray-no-whole-archive.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,22 @@
+--- a/brightray.gyp
++++ b/brightray.gyp
+@@ -39,14 +39,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/brightray-use-system-ffmpeg.patch (from rev 191542, electron/trunk/brightray-use-system-ffmpeg.patch)
===================================================================
--- community-staging-x86_64/brightray-use-system-ffmpeg.patch	                        (rev 0)
+++ community-staging-x86_64/brightray-use-system-ffmpeg.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,11 @@
+--- a/brightray.gyp
++++ b/brightray.gyp
+@@ -104,8 +104,6 @@
+             }, {
+               'link_settings': {
+                 'libraries': [
+-                  # Link with ffmpeg.
+-                  '<(libchromiumcontent_dir)/libffmpeg.so',
+                   # Following libraries are required by libchromiumcontent:
+                   '-lasound',
+                   '-lcap',

Copied: electron/repos/community-staging-x86_64/chromium-cups.patch (from rev 191542, electron/trunk/chromium-cups.patch)
===================================================================
--- community-staging-x86_64/chromium-cups.patch	                        (rev 0)
+++ community-staging-x86_64/chromium-cups.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,10 @@
+--- a/printing/backend/print_backend_cups.cc
++++ b/printing/backend/print_backend_cups.cc
+@@ -4,6 +4,7 @@
+ 
+ #include "printing/backend/print_backend_cups.h"
+ 
++#include <cups/ppd.h>
+ #include <dlfcn.h>
+ #include <errno.h>
+ #include <pthread.h>

Copied: electron/repos/community-staging-x86_64/chromium-gtk3-hidpi.patch (from rev 191542, electron/trunk/chromium-gtk3-hidpi.patch)
===================================================================
--- community-staging-x86_64/chromium-gtk3-hidpi.patch	                        (rev 0)
+++ community-staging-x86_64/chromium-gtk3-hidpi.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,49 @@
+--- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
++++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
+@@ -454,12 +454,18 @@
+ 
+ // Queries GTK for its font DPI setting and returns the number of pixels in a
+ // point.
++#if GTK_MAJOR_VERSION == 2
+ double GetPixelsInPoint(float device_scale_factor) {
++#else
++double GetPixelsInPoint() {
++#endif
+   double dpi = GetDPI();
+ 
++#if GTK_MAJOR_VERSION == 2
+   // Take device_scale_factor into account — if Chrome already scales the
+   // entire UI up by 2x, we should not also scale up.
+   dpi /= device_scale_factor;
++#endif
+ 
+   // There are 72 points in an inch.
+   return dpi / 72.0;
+@@ -1371,8 +1377,13 @@
+     // Round the value when converting to pixels to match GTK's logic.
+     const double size_points = pango_font_description_get_size(desc) /
+         static_cast<double>(PANGO_SCALE);
++#if GTK_MAJOR_VERSION == 2
+     default_font_size_pixels_ = static_cast<int>(
+         GetPixelsInPoint(device_scale_factor_) * size_points + 0.5);
++#else
++    default_font_size_pixels_ = static_cast<int>(
++        GetPixelsInPoint() * size_points + 0.5);
++#endif
+     query.point_size = static_cast<int>(size_points);
+   }
+ 
+@@ -1405,8 +1416,13 @@
+ float Gtk2UI::GetDeviceScaleFactor() const {
+   if (display::Display::HasForceDeviceScaleFactor())
+     return display::Display::GetForcedDeviceScaleFactor();
++#if GTK_MAJOR_VERSION == 2
+   const int kCSSDefaultDPI = 96;
+   const float scale = GetDPI() / kCSSDefaultDPI;
++#else
++  const float scale = static_cast<float>(gdk_window_get_scale_factor(
++      gdk_screen_get_root_window(gdk_screen_get_default())));
++#endif
+ 
+   // Blacklist scaling factors <130% (crbug.com/484400) and round
+   // to 1 decimal to prevent rendering problems (crbug.com/485183).

Copied: electron/repos/community-staging-x86_64/chromium-gtk3-use-x11-backend.patch (from rev 191542, electron/trunk/chromium-gtk3-use-x11-backend.patch)
===================================================================
--- community-staging-x86_64/chromium-gtk3-use-x11-backend.patch	                        (rev 0)
+++ community-staging-x86_64/chromium-gtk3-use-x11-backend.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,12 @@
+--- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
++++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
+@@ -488,6 +488,9 @@
+       default_font_weight_(gfx::Font::Weight::NORMAL),
+       middle_click_action_(GetDefaultMiddleClickAction()),
+       device_scale_factor_(1.0) {
++#if GTK_MAJOR_VERSION > 2
++  gdk_set_allowed_backends("x11");
++#endif
+   GtkInitFromCommandLine(*base::CommandLine::ForCurrentProcess());
+ }
+ 

Copied: electron/repos/community-staging-x86_64/chromium-unset-madv_free.patch (from rev 191542, electron/trunk/chromium-unset-madv_free.patch)
===================================================================
--- community-staging-x86_64/chromium-unset-madv_free.patch	                        (rev 0)
+++ community-staging-x86_64/chromium-unset-madv_free.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,14 @@
+--- a/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
++++ b/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
+@@ -41,6 +41,11 @@
+ #include <errno.h>
+ #include <sys/mman.h>
+ 
++#if OS(LINUX) && defined(MADV_FREE)
++// Added in Linux 4.5, but it breaks the sandbox.
++#undef MADV_FREE
++#endif
++
+ #ifndef MADV_FREE
+ #define MADV_FREE MADV_DONTNEED
+ #endif

Copied: electron/repos/community-staging-x86_64/chromium-use-system-ffmpeg.patch (from rev 191542, 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	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,48 @@
+--- a/media/ffmpeg/ffmpeg_common.h
++++ b/media/ffmpeg/ffmpeg_common.h
+@@ -22,10 +22,6 @@
+ 
+ // Include FFmpeg header files.
+ extern "C" {
+-// Disable deprecated features which result in spammy compile warnings.  This
+-// list of defines must mirror those in the 'defines' section of BUILD.gn file &
+-// ffmpeg.gyp file or the headers below will generate different structures!
+-#define FF_API_CONVERGENCE_DURATION 0
+ // 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,
+@@ -39,7 +35,6 @@
+ MSVC_PUSH_DISABLE_WARNING(4244);
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
+-#include <libavformat/internal.h>
+ #include <libavformat/avio.h>
+ #include <libavutil/avutil.h>
+ #include <libavutil/imgutils.h>
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -1106,24 +1106,6 @@
+   // If no estimate is found, the stream entry will be kInfiniteDuration().
+   std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
+                                                     kInfiniteDuration());
+-  const AVFormatInternal* internal = format_context->internal;
+-  if (internal && internal->packet_buffer &&
+-      format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
+-    struct AVPacketList* packet_buffer = internal->packet_buffer;
+-    while (packet_buffer != internal->packet_buffer_end) {
+-      DCHECK_LT(static_cast<size_t>(packet_buffer->pkt.stream_index),
+-                start_time_estimates.size());
+-      const AVStream* stream =
+-          format_context->streams[packet_buffer->pkt.stream_index];
+-      if (packet_buffer->pkt.pts != static_cast<int64_t>(AV_NOPTS_VALUE)) {
+-        const base::TimeDelta packet_pts =
+-            ConvertFromTimeBase(stream->time_base, packet_buffer->pkt.pts);
+-        if (packet_pts < start_time_estimates[stream->index])
+-          start_time_estimates[stream->index] = packet_pts;
+-      }
+-      packet_buffer = packet_buffer->next;
+-    }
+-  }
+ 
+   std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
+   AVStream* audio_stream = NULL;

Copied: electron/repos/community-staging-x86_64/chromium-use-system-minizip.patch (from rev 191542, 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	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,14 @@
+--- a/third_party/zlib/google/zip_reader.cc
++++ b/third_party/zlib/google/zip_reader.cc
+@@ -279,10 +279,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 191542, 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	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,17 @@
+--- a/build/linux/unbundle/re2.gyp
++++ b/build/linux/unbundle/re2.gyp
+@@ -8,13 +8,12 @@
+       'target_name': 're2',
+       'type': 'none',
+       'variables': {
+-        'headers_root_path': '.',
++        'headers_root_path': 'src',
+         'header_filenames': [
+           're2/filtered_re2.h',
+           're2/re2.h',
+           're2/set.h',
+           're2/stringpiece.h',
+-          're2/variadic_function.h',
+         ],
+         'shim_generator_additional_args': [
+           # Chromium copy of re2 is patched to rename POSIX to POSIX_SYNTAX

Copied: electron/repos/community-staging-x86_64/default_app-icon.patch (from rev 191542, electron/trunk/default_app-icon.patch)
===================================================================
--- community-staging-x86_64/default_app-icon.patch	                        (rev 0)
+++ community-staging-x86_64/default_app-icon.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,22 @@
+--- a/default_app/default_app.js
++++ b/default_app/default_app.js
+@@ -17,9 +17,6 @@ exports.load = (appUrl) => {
+       backgroundColor: '#FFFFFF',
+       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
+@@ -79,7 +79,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 191542, electron/trunk/dont-bootstrap-libchromiumcontent.patch)
===================================================================
--- community-staging-x86_64/dont-bootstrap-libchromiumcontent.patch	                        (rev 0)
+++ community-staging-x86_64/dont-bootstrap-libchromiumcontent.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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
+@@ -28,7 +28,7 @@ def main():
+   update = os.path.join(script_dir, 'update')
+   build = os.path.join(script_dir, 'build')
+   create_dist = os.path.join(script_dir, 'create-dist')
+-  execute_stdout([sys.executable, bootstrap])
++  # execute_stdout([sys.executable, bootstrap])
+   execute_stdout([sys.executable, update, '-t', args.target_arch,
+                   '--defines', args.defines])
+   execute_stdout([sys.executable, build, '-R', '-t', args.target_arch])

Copied: electron/repos/community-staging-x86_64/dont-update-submodules.patch (from rev 191542, electron/trunk/dont-update-submodules.patch)
===================================================================
--- community-staging-x86_64/dont-update-submodules.patch	                        (rev 0)
+++ community-staging-x86_64/dont-update-submodules.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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 191542, electron/trunk/dont-use-sysroot.patch)
===================================================================
--- community-staging-x86_64/dont-use-sysroot.patch	                        (rev 0)
+++ community-staging-x86_64/dont-use-sysroot.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,27 @@
+--- a/script/bootstrap.py
++++ b/script/bootstrap.py
+@@ -57,9 +57,6 @@
+                       libcc_source_path, libcc_shared_library_path,
+                       libcc_static_library_path)
+ 
+-  if PLATFORM == 'linux':
+-    download_sysroot(args.target_arch)
+-
+   create_chrome_version_h()
+   touch_config_gypi()
+   run_update(defines, args.msvs)
+--- a/toolchain.gypi
++++ b/toolchain.gypi
+@@ -53,10 +53,10 @@
+               'sysroot%': '<(source_root)/vendor/debian_wheezy_arm-sysroot',
+             }],
+             ['target_arch=="ia32"', {
+-              'sysroot%': '<(source_root)/vendor/debian_wheezy_i386-sysroot',
++              'sysroot%': '/',
+             }],
+             ['target_arch=="x64"', {
+-              'sysroot%': '<(source_root)/vendor/debian_wheezy_amd64-sysroot',
++              'sysroot%': '/',
+             }],
+           ],
+         },

Copied: electron/repos/community-staging-x86_64/electron.desktop (from rev 191542, electron/trunk/electron.desktop)
===================================================================
--- community-staging-x86_64/electron.desktop	                        (rev 0)
+++ community-staging-x86_64/electron.desktop	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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 191542, electron/trunk/gtk3-menu-bar.patch)
===================================================================
--- community-staging-x86_64/gtk3-menu-bar.patch	                        (rev 0)
+++ community-staging-x86_64/gtk3-menu-bar.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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/libgtk2ui/skia_utils_gtk2.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 = libgtk2ui::GdkColorToSkColor(style->fg[GTK_STATE_NORMAL]);
+-  *disabled = libgtk2ui::GdkColorToSkColor(style->fg[GTK_STATE_INSENSITIVE]);
+-  *highlight = libgtk2ui::GdkColorToSkColor(style->fg[GTK_STATE_SELECTED]);
+-  *hover = libgtk2ui::GdkColorToSkColor(style->fg[GTK_STATE_PRELIGHT]);
+-  *background = libgtk2ui::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-warnings.patch (from rev 191542, electron/trunk/gtk3-warnings.patch)
===================================================================
--- community-staging-x86_64/gtk3-warnings.patch	                        (rev 0)
+++ community-staging-x86_64/gtk3-warnings.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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"
+@@ -43,20 +45,20 @@ class FileChooserDialog {
+                     const Filters& filters)
+       : parent_(static_cast<atom::NativeWindowViews*>(parent_window)),
+         filters_(filters) {
+-    const char* confirm_text = GTK_STOCK_OK;
++    const char* confirm_text = _("_OK");
+ 
+     if (!button_label.empty())
+       confirm_text = 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(
+         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"
+@@ -107,13 +109,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 191542, electron/trunk/gyp-no-rpath.patch)
===================================================================
--- community-staging-x86_64/gyp-no-rpath.patch	                        (rev 0)
+++ community-staging-x86_64/gyp-no-rpath.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -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-sort-filenames.patch (from rev 191542, electron/trunk/libchromiumcontent-sort-filenames.patch)
===================================================================
--- community-staging-x86_64/libchromiumcontent-sort-filenames.patch	                        (rev 0)
+++ community-staging-x86_64/libchromiumcontent-sort-filenames.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,11 @@
+--- a/tools/generate_filenames_gypi.py
++++ b/tools/generate_filenames_gypi.py
+@@ -98,7 +98,7 @@
+ 
+ 
+ def searh_files(src, suffix, exclude):
+-  files = glob.glob(os.path.join(src, '*.' + suffix))
++  files = sorted(glob.glob(os.path.join(src, '*.' + suffix)))
+   files = [f for f in files if os.path.basename(f) not in exclude]
+   return ([os.path.abspath(f) for f in files if not is_v8_library(f)],
+           [os.path.abspath(f) for f in files if is_v8_library(f)])

Copied: electron/repos/community-staging-x86_64/libchromiumcontent-static-library-only.patch (from rev 191542, 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	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,26 @@
+diff --git a/script/build b/script/build
+index 5e06fd1..fdf8b95 100755
+--- a/script/build
++++ b/script/build
+@@ -11,7 +11,7 @@ from lib.util import get_configuration, get_output_dir
+ 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':
+diff --git a/script/update b/script/update
+index 62828ce..e757fc6 100755
+--- a/script/update
++++ b/script/update
+@@ -18,7 +18,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']
+ 
+ TARBALL_REPO = 'zcbenz/chromium-source-tarball'
+ TARBALL_URL = 'https://github.com/{0}/releases/download/{1}/chromium-{1}.tar.xz'

Copied: electron/repos/community-staging-x86_64/libchromiumcontent-use-system-ffmpeg.patch (from rev 191542, electron/trunk/libchromiumcontent-use-system-ffmpeg.patch)
===================================================================
--- community-staging-x86_64/libchromiumcontent-use-system-ffmpeg.patch	                        (rev 0)
+++ community-staging-x86_64/libchromiumcontent-use-system-ffmpeg.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,18 @@
+--- a/script/create-dist
++++ b/script/create-dist
+@@ -93,7 +93,6 @@
+     'libsecurity_state.a',
+     'libcookie_config.a',
+     'libos_crypt.a',
+-    os.path.join('lib', 'libffmpeg.so'),
+   ],
+   'win32': [
+     'chromedriver.exe',
+@@ -314,7 +313,6 @@
+       copy_generated_sources(target_arch, component, output_dir)
+       copy_locales(target_arch, component, output_dir)
+ 
+-  copy_ffmpeg(target_arch)
+   copy_sources()
+   generate_licenses()
+   if not args.no_zip:

Copied: electron/repos/community-staging-x86_64/libchromiumcontent-use-system-tools.patch (from rev 191542, 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	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,31 @@
+diff --git a/script/build b/script/build
+index 8259f49..c4ffd5d 100755
+--- a/script/build
++++ b/script/build
+@@ -13,7 +13,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)
+ 
+diff --git a/script/update b/script/update
+index b9f5127..499cebb 100755
+--- a/script/update
++++ b/script/update
+@@ -31,13 +31,9 @@ def main():
+   if not is_source_tarball_updated(version):
+     download_source_tarball(version)
+ 
+-  if sys.platform == 'linux2':
+-    install_sysroot()
+-
+   target_arch = args.target_arch
+   return (apply_patches() or
+           copy_chromiumcontent_files() or
+-          update_clang() or
+           run_gyp(target_arch, args.defines))
+ 
+ 

Copied: electron/repos/community-staging-x86_64/use-system-clang.patch (from rev 191542, electron/trunk/use-system-clang.patch)
===================================================================
--- community-staging-x86_64/use-system-clang.patch	                        (rev 0)
+++ community-staging-x86_64/use-system-clang.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,13 @@
+--- a/script/bootstrap.py
++++ b/script/bootstrap.py
+@@ -165,8 +165,8 @@ def update_node_modules(dirname, env=None):
+   if env is None:
+     env = os.environ.copy()
+   if PLATFORM == 'linux':
+-    # Use prebuilt clang for building native modules.
+-    set_clang_env(env)
++    env['CC']  = 'clang'
++    env['CXX'] = 'clang++'
+     env['npm_config_clang'] = '1'
+   with scoped_cwd(dirname):
+     args = [NPM, 'install']

Copied: electron/repos/community-staging-x86_64/use-system-ffmpeg.patch (from rev 191542, electron/trunk/use-system-ffmpeg.patch)
===================================================================
--- community-staging-x86_64/use-system-ffmpeg.patch	                        (rev 0)
+++ community-staging-x86_64/use-system-ffmpeg.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,10 @@
+--- a/electron.gyp
++++ b/electron.gyp
+@@ -182,7 +182,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 191542, 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	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,51 @@
+--- 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_openssl': 'true',
+     'node_shared_v8': 'true',
+-    'node_shared_zlib': 'false',
++    'node_shared_zlib': 'true',
+     'node_tag': '',
+     'node_use_dtrace': 'false',
+     'node_use_etw': 'false',
+@@ -109,17 +109,6 @@
+         'conditions': [
+           ['OS=="linux"', {
+             'cflags': [
+-              '-Wno-parentheses-equality',
+-              '-Wno-unused-function',
+-              '-Wno-sometimes-uninitialized',
+-              '-Wno-pointer-sign',
+-              '-Wno-string-plus-int',
+-              '-Wno-unused-variable',
+-              '-Wno-unused-value',
+-              '-Wno-deprecated-declarations',
+-              '-Wno-return-type',
+-              '-Wno-shift-negative-value',
+-              '-Wno-varargs', # https://git.io/v6Olj
+               # Required when building as shared library.
+               '-fPIC',
+             ],
+@@ -198,6 +187,13 @@
+             ],
+           }],
+           ['OS=="linux" and libchromiumcontent_component==0', {
++            'libraries': [
++              '-lcares',
++              '-lcrypto',
++              '-lhttp_parser',
++              '-lssl',
++              '-lz',
++            ],
+             # Prevent the linker from stripping symbols.
+             'ldflags': [
+               '-Wl,--whole-archive',

Copied: electron/repos/community-staging-x86_64/use-system-ninja.patch (from rev 191542, electron/trunk/use-system-ninja.patch)
===================================================================
--- community-staging-x86_64/use-system-ninja.patch	                        (rev 0)
+++ community-staging-x86_64/use-system-ninja.patch	2016-10-07 09:57:50 UTC (rev 191543)
@@ -0,0 +1,11 @@
+--- a/script/build.py
++++ b/script/build.py
+@@ -19,7 +19,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'
+ 



More information about the arch-commits mailing list