summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElvis Pranskevichus <elvis@magic.io>2016-04-05 12:29:26 -0400
committerPatrice Clement <monsieurp@gentoo.org>2016-05-03 14:45:56 +0000
commit1b299909903085240575a3f5c9aaf5377a4a13fe (patch)
treef3969c55eb1c38c907a9377f5085e8fdfdf71d26 /dev-util/electron/files
parentmedia-sound/clementine: Removed old. (diff)
downloadgentoo-1b299909903085240575a3f5c9aaf5377a4a13fe.tar.gz
gentoo-1b299909903085240575a3f5c9aaf5377a4a13fe.tar.bz2
gentoo-1b299909903085240575a3f5c9aaf5377a4a13fe.zip
dev-util/electron: Add ebuild for Github's Electron (v0.36.9)
Electron is an application framework built on top of Chromium and NodeJS. It allows creating cross-platform desktop apps using Web tech. [1] The main user of Electron is the Atom IDE [2]. Microsoft Visual Studio Code is also based on Electron. It is also useful for the creation of desktop wrappers for popular web services, e.g. Google Music [3]. Unfortunately, current upstream's approach to "building Electron from source" involves downloading a pre-built libchromiumcontent.so binary from the Internet, which poses obvious security and compatibility risks. This ebuild is based heavily on the Chromium ebuild and follows similar unbunling policy. Additionally, Electron-specific NodeJS headers are installed to /usr/include so that native modules built for Electron-based apps can be compiled against the correct version of NodeJS embedded in Electron. [1] http://electron.atom.io/ [2] http://atom.io/ [3] https://github.com/twolfson/google-music-electron Gentoo-Bug: https://bugs.gentoo.org/579116 Closes: https://github.com/gentoo/gentoo/pull/1200 Package-Manager: portage-2.2.28 Acked-by: Mike Gilbert <floppym@gentoo.org> Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
Diffstat (limited to 'dev-util/electron/files')
-rw-r--r--dev-util/electron/files/brightray-gentoo-build-fixes.patch81
-rw-r--r--dev-util/electron/files/chromium-disable-widevine.patch9
-rw-r--r--dev-util/electron/files/chromium-lto-fixes.patch26
-rw-r--r--dev-util/electron/files/chromium-remove-gardiner-mod-font.patch13
-rw-r--r--dev-util/electron/files/chromium-shared-v8.patch15
-rw-r--r--dev-util/electron/files/chromium-system-ffmpeg-r0.patch54
-rw-r--r--dev-util/electron/files/chromium-system-jinja-r7.patch35
-rw-r--r--dev-util/electron/files/chromium-system-libvpx-r0.patch20
-rw-r--r--dev-util/electron/files/electron-gentoo-build-fixes.patch157
-rw-r--r--dev-util/electron/files/libchromiumcontent-gentoo-build-fixes.patch75
-rw-r--r--dev-util/electron/files/node-gentoo-build-fixes.patch50
11 files changed, 535 insertions, 0 deletions
diff --git a/dev-util/electron/files/brightray-gentoo-build-fixes.patch b/dev-util/electron/files/brightray-gentoo-build-fixes.patch
new file mode 100644
index 000000000000..a67808457752
--- /dev/null
+++ b/dev-util/electron/files/brightray-gentoo-build-fixes.patch
@@ -0,0 +1,81 @@
+From c9e2e0237170884bc1069a64f2635bb1ffc1b948 Mon Sep 17 00:00:00 2001
+From: Elvis Pranskevichus <elvis@magic.io>
+Date: Mon, 8 Feb 2016 15:14:58 -0500
+Subject: [PATCH] brightray build fixes
+
+---
+ brightray.gyp | 5 +++--
+ brightray.gypi | 21 ++++++++-------------
+ 2 files changed, 11 insertions(+), 15 deletions(-)
+
+diff --git a/brightray.gyp b/brightray.gyp
+index d7120ea..6150318 100644
+--- a/brightray.gyp
++++ b/brightray.gyp
+@@ -9,6 +9,9 @@
+ 'targets': [
+ {
+ 'target_name': 'brightray',
++ 'dependencies': [
++ '<(libchromiumcontent_src_dir)/chromiumcontent/chromiumcontent.gyp:chromiumcontent_all'
++ ],
+ 'type': 'static_library',
+ 'include_dirs': [
+ '.',
+@@ -100,8 +103,6 @@
+ }, {
+ 'link_settings': {
+ 'libraries': [
+- # Link with ffmpeg.
+- '<(libchromiumcontent_dir)/libffmpeg.so',
+ # Following libraries are required by libchromiumcontent:
+ '-lasound',
+ '-lcap',
+diff --git a/brightray.gypi b/brightray.gypi
+index 4513fa9..95bdfa1 100644
+--- a/brightray.gypi
++++ b/brightray.gypi
+@@ -1,9 +1,14 @@
+ {
+- 'includes': [
+- 'vendor/download/libchromiumcontent/filenames.gypi',
+- ],
+ 'variables': {
+ 'libchromiumcontent_component%': 1,
++ 'libchromiumcontent_src_dir': '<(DEPTH)',
++ 'libchromiumcontent_shared_libraries_dir': '<(SHARED_INTERMEDIATE_DIR)',
++ 'libchromiumcontent_static_libraries_dir': '<(SHARED_INTERMEDIATE_DIR)',
++ 'libchromiumcontent_shared_libraries': [],
++ 'libchromiumcontent_static_libraries': [],
++ 'libchromiumcontent_shared_v8_libraries': [],
++ 'libchromiumcontent_static_v8_libraries': [],
++ 'pkg-config%': 'pkg-config',
+ 'conditions': [
+ # The "libchromiumcontent_component" is defined when calling "gyp".
+ ['libchromiumcontent_component', {
+@@ -258,22 +263,12 @@
+ 'conditions': [
+ ['OS=="linux"', {
+ 'cflags': [
+- '-O2',
+- # Generate symbols, will be stripped later.
+- '-g',
+- # Don't emit the GCC version ident directives, they just end up
+- # in the .comment section taking up binary size.
+- '-fno-ident',
+ # Put data and code in their own sections, so that unused symbols
+ # can be removed at link time with --gc-sections.
+ '-fdata-sections',
+ '-ffunction-sections',
+ ],
+ 'ldflags': [
+- # Specifically tell the linker to perform optimizations.
+- # See http://lwn.net/Articles/192624/ .
+- '-Wl,-O1',
+- '-Wl,--as-needed',
+ '-Wl,--gc-sections',
+ ],
+ }], # OS=="linux"
+--
+2.7.3
+
diff --git a/dev-util/electron/files/chromium-disable-widevine.patch b/dev-util/electron/files/chromium-disable-widevine.patch
new file mode 100644
index 000000000000..5b166463c88c
--- /dev/null
+++ b/dev-util/electron/files/chromium-disable-widevine.patch
@@ -0,0 +1,9 @@
+--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
+@@ -10,6 +10,5 @@
+
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"
+
+-#define WIDEVINE_CDM_AVAILABLE
+
+ #endif // WIDEVINE_CDM_VERSION_H_
diff --git a/dev-util/electron/files/chromium-lto-fixes.patch b/dev-util/electron/files/chromium-lto-fixes.patch
new file mode 100644
index 000000000000..7de3df1b26f6
--- /dev/null
+++ b/dev-util/electron/files/chromium-lto-fixes.patch
@@ -0,0 +1,26 @@
+diff --git a/build/common.gypi.orig b/build/common.gypi
+index cce7b3c..3b905c0 100644
+--- a/build/common.gypi.orig
++++ b/build/common.gypi
+@@ -6096,7 +6096,7 @@
+ 'target_conditions': [
+ ['_toolset=="target"', {
+ 'ldflags': [
+- '-flto=32',
++ '-flto=4'
+ ],
+ }],
+ ],
+diff --git a/build/android/disable_gcc_lto.gypi.orig b/build/android/disable_gcc_lto.gypi
+index a733c7a..57570f8 100644
+--- a/build/android/disable_gcc_lto.gypi.orig
++++ b/build/android/disable_gcc_lto.gypi
+@@ -8,7 +8,7 @@
+ 'target_conditions': [
+ ['_toolset=="target"', {
+ 'conditions': [
+- ['OS=="android" and clang==0 and (use_lto==1 or use_lto_o2==1)', {
++ ['(OS=="android" or OS=="linux") and clang==0 and (use_lto==1 or use_lto_o2==1)', {
+ 'cflags!': [
+ '-flto',
+ '-ffat-lto-objects',
diff --git a/dev-util/electron/files/chromium-remove-gardiner-mod-font.patch b/dev-util/electron/files/chromium-remove-gardiner-mod-font.patch
new file mode 100644
index 000000000000..cf1955ffbfd2
--- /dev/null
+++ b/dev-util/electron/files/chromium-remove-gardiner-mod-font.patch
@@ -0,0 +1,13 @@
+diff --git a/test_runner.gyp b/test_runner.gyp
+index 30ffa75..8838bdf 100644
+--- a/components/test_runner/test_runner.gyp
++++ b/components/test_runner/test_runner.gyp
+@@ -162,8 +162,6 @@
+ 'files': [
+ 'resources/fonts/AHEM____.TTF',
+ 'resources/fonts/fonts.conf',
+- '../../third_party/gardiner_mod/GardinerModBug.ttf',
+- '../../third_party/gardiner_mod/GardinerModCat.ttf',
+ ]
+ }],
+ }],
diff --git a/dev-util/electron/files/chromium-shared-v8.patch b/dev-util/electron/files/chromium-shared-v8.patch
new file mode 100644
index 000000000000..67d97c8b3974
--- /dev/null
+++ b/dev-util/electron/files/chromium-shared-v8.patch
@@ -0,0 +1,15 @@
+diff --git a/v8/tools/gyp/v8.gyp.orig b/v8/tools/gyp/v8.gyp
+index bcb5801..3162456 100644
+--- a/v8/tools/gyp/v8.gyp.orig
++++ b/v8/tools/gyp/v8.gyp
+@@ -48,8 +48,8 @@
+ }, {
+ 'toolsets': ['target'],
+ }],
+- ['component=="shared_library"', {
+- 'type': '<(component)',
++ ['v8_target_type=="shared_library"', {
++ 'type': 'shared_library',
+ 'sources': [
+ # Note: on non-Windows we still build this file so that gyp
+ # has some sources to link into the component.
diff --git a/dev-util/electron/files/chromium-system-ffmpeg-r0.patch b/dev-util/electron/files/chromium-system-ffmpeg-r0.patch
new file mode 100644
index 000000000000..667e0ecb2a72
--- /dev/null
+++ b/dev-util/electron/files/chromium-system-ffmpeg-r0.patch
@@ -0,0 +1,54 @@
+diff --git a/media/ffmpeg/ffmpeg_common.h b/media/ffmpeg/ffmpeg_common.h
+index 677bd76..23a21f8 100644
+--- a/media/ffmpeg/ffmpeg_common.h
++++ b/media/ffmpeg/ffmpeg_common.h
+@@ -19,20 +19,12 @@
+
+ // 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 the ffmpeg.gyp
+-// file or the headers below will generate different structures.
+-#define FF_API_PIX_FMT_DESC 0
+-#define FF_API_OLD_DECODE_AUDIO 0
+-#define FF_API_DESTRUCT_PACKET 0
+-#define FF_API_GET_BUFFER 0
+
+ // Temporarily disable possible loss of data warning.
+ // TODO(scherkus): fix and upstream the compiler warnings.
+ 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>
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+index 155e980..7ba327a 100644
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -966,24 +966,6 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
+ // 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>(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>(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;
+- }
+- }
+
+ AVStream* audio_stream = NULL;
+ AudioDecoderConfig audio_config;
diff --git a/dev-util/electron/files/chromium-system-jinja-r7.patch b/dev-util/electron/files/chromium-system-jinja-r7.patch
new file mode 100644
index 000000000000..fe28e12c333c
--- /dev/null
+++ b/dev-util/electron/files/chromium-system-jinja-r7.patch
@@ -0,0 +1,35 @@
+--- third_party/WebKit/Source/bindings/scripts/scripts.gyp.orig 2014-08-19 09:55:10.330972228 +0000
++++ third_party/WebKit/Source/bindings/scripts/scripts.gyp 2014-08-19 09:55:26.387286232 +0000
+@@ -54,7 +54,6 @@
+ 'actions': [{
+ 'action_name': 'cache_jinja_templates',
+ 'inputs': [
+- '<@(jinja_module_files)',
+ 'code_generator_v8.py',
+ '<@(code_generator_template_files)',
+ ],
+--- third_party/WebKit/Source/build/scripts/scripts.gypi.orig 2014-08-19 10:00:00.216521733 +0000
++++ third_party/WebKit/Source/build/scripts/scripts.gypi 2014-08-19 10:00:11.464735099 +0000
+@@ -2,10 +2,6 @@
+ {
+ 'variables': {
+ 'scripts_for_in_files': [
+- # jinja2/__init__.py contains version string, so sufficient as
+- # dependency for whole jinja2 package
+- '<(DEPTH)/third_party/jinja2/__init__.py',
+- '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep
+ 'hasher.py',
+ 'in_file.py',
+ 'in_generator.py',
+--- third_party/WebKit/Source/bindings/scripts/scripts.gypi.orig 2014-08-19 10:53:02.824618979 +0000
++++ third_party/WebKit/Source/bindings/scripts/scripts.gypi 2014-08-19 10:53:20.784957370 +0000
+@@ -12,9 +12,6 @@
+ '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep
+ ],
+ 'idl_lexer_parser_files': [
+- # PLY (Python Lex-Yacc)
+- '<(DEPTH)/third_party/ply/lex.py',
+- '<(DEPTH)/third_party/ply/yacc.py',
+ # Web IDL lexer/parser (base parser)
+ '<(DEPTH)/tools/idl_parser/idl_lexer.py',
+ '<(DEPTH)/tools/idl_parser/idl_node.py',
diff --git a/dev-util/electron/files/chromium-system-libvpx-r0.patch b/dev-util/electron/files/chromium-system-libvpx-r0.patch
new file mode 100644
index 000000000000..cd7c164d7e6a
--- /dev/null
+++ b/dev-util/electron/files/chromium-system-libvpx-r0.patch
@@ -0,0 +1,20 @@
+--- build/linux/unbundle/libvpx.gyp.orig 2016-02-08 19:16:24.646981037 -0500
++++ build/linux/unbundle/libvpx.gyp 2016-02-08 19:15:42.449979462 -0500
+@@ -4,7 +4,7 @@
+ {
+ 'targets': [
+ {
+- 'target_name': 'libvpx',
++ 'target_name': 'libvpx_new',
+ 'type': 'none',
+ 'direct_dependent_settings': {
+ 'cflags': [
+@@ -18,8 +18,6 @@
+ 'vpx/vp8cx.h',
+ 'vpx/vp8dx.h',
+ 'vpx/vpx_codec.h',
+- 'vpx/vpx_codec_impl_bottom.h',
+- 'vpx/vpx_codec_impl_top.h',
+ 'vpx/vpx_decoder.h',
+ 'vpx/vpx_encoder.h',
+ 'vpx/vpx_frame_buffer.h',
diff --git a/dev-util/electron/files/electron-gentoo-build-fixes.patch b/dev-util/electron/files/electron-gentoo-build-fixes.patch
new file mode 100644
index 000000000000..5a91a8f4a3e9
--- /dev/null
+++ b/dev-util/electron/files/electron-gentoo-build-fixes.patch
@@ -0,0 +1,157 @@
+From 174dd209209d8f67f534ad761d8adeeddc6bf5c0 Mon Sep 17 00:00:00 2001
+From: Elvis Pranskevichus <elvis@magic.io>
+Date: Mon, 8 Feb 2016 15:16:40 -0500
+Subject: [PATCH] electron build fixes
+
+---
+ atom.gyp | 19 ++++++++-----------
+ common.gypi | 32 +++++++++++++++++++++++---------
+ filenames.gypi | 1 -
+ 3 files changed, 31 insertions(+), 21 deletions(-)
+
+diff --git a/atom.gyp b/atom.gyp
+index 68a30cc..06109a9 100644
+--- a/atom.gyp
++++ b/atom.gyp
+@@ -177,7 +177,7 @@
+ ],
+ }, {
+ 'dependencies': [
+- 'vendor/breakpad/breakpad.gyp:dump_syms#host',
++ 'breakpad/breakpad.gyp:dump_syms#host',
+ ],
+ }], # OS=="win"
+ ['OS=="linux"', {
+@@ -194,7 +194,7 @@
+ }, {
+ 'copied_libraries': [
+ '<(PRODUCT_DIR)/lib/libnode.so',
+- '<(libchromiumcontent_dir)/libffmpeg.so',
++ '<(PRODUCT_DIR)/lib/libv8.so',
+ ],
+ }],
+ ],
+@@ -202,9 +202,6 @@
+ 'destination': '<(PRODUCT_DIR)',
+ 'files': [
+ '<@(copied_libraries)',
+- '<(libchromiumcontent_dir)/locales',
+- '<(libchromiumcontent_dir)/icudtl.dat',
+- '<(libchromiumcontent_dir)/content_shell.pak',
+ '<(libchromiumcontent_dir)/natives_blob.bin',
+ '<(libchromiumcontent_dir)/snapshot_blob.bin',
+ ],
+@@ -242,8 +239,8 @@
+ '<@(lib_sources)',
+ ],
+ 'include_dirs': [
+- '.',
+ 'chromium_src',
++ '.',
+ 'vendor/brightray',
+ 'vendor/native_mate',
+ # Include atom_natives.h.
+@@ -301,8 +298,8 @@
+ 'vendor/node/deps/uv/uv.gyp:libuv',
+ 'vendor/node/deps/zlib/zlib.gyp:zlib',
+ # Build with breakpad support.
+- 'vendor/breakpad/breakpad.gyp:breakpad_handler',
+- 'vendor/breakpad/breakpad.gyp:breakpad_sender',
++ 'breakpad/breakpad.gyp:breakpad_handler',
++ 'breakpad/breakpad.gyp:breakpad_sender',
+ ],
+ }], # OS=="win"
+ ['OS=="mac" and mas_build==0', {
+@@ -333,7 +330,7 @@
+ # Make binary search for libraries under current directory, so we
+ # don't have to manually set $LD_LIBRARY_PATH:
+ # http://serverfault.com/questions/279068/cant-find-so-in-the-same-directory-as-the-executable
+- '-rpath \$$ORIGIN',
++ '-Wl,-rpath=\$$ORIGIN/',
+ # Make native module dynamic loading work.
+ '-rdynamic',
+ ],
+@@ -344,10 +341,10 @@
+ '-Wno-reserved-user-defined-literal',
+ ],
+ 'include_dirs': [
+- 'vendor/breakpad/src',
++ 'breakpad/src',
+ ],
+ 'dependencies': [
+- 'vendor/breakpad/breakpad.gyp:breakpad_client',
++ 'breakpad/breakpad.gyp:breakpad_client',
+ ],
+ }], # OS=="linux"
+ ],
+diff --git a/common.gypi b/common.gypi
+index 7c41c36..97a3d3a 100644
+--- a/common.gypi
++++ b/common.gypi
+@@ -17,28 +17,42 @@
+ 'node_target_type': 'shared_library',
+ 'node_install_npm': 'false',
+ 'node_prefix': '',
+- 'node_shared_cares': 'false',
+- 'node_shared_http_parser': 'false',
+- 'node_shared_libuv': 'false',
+- 'node_shared_openssl': 'false',
+- 'node_shared_v8': 'true',
+- 'node_shared_zlib': 'false',
+ 'node_tag': '',
+ 'node_use_dtrace': 'false',
+ 'node_use_etw': 'false',
+ 'node_use_mdb': 'false',
+ 'node_use_openssl': 'true',
+ 'node_use_perfctr': 'false',
+- 'uv_library': 'static_library',
+- 'uv_parent_path': 'vendor/node/deps/uv',
+- 'uv_use_dtrace': 'false',
+ 'V8_BASE': '',
+ 'v8_postmortem_support': 'false',
+ 'v8_enable_i18n_support': 'false',
++ 'v8_gyp_path': '<(DEPTH)/v8/tools/gyp/v8.gyp',
++ 'v8_libraries': '["v8", "v8_snapshot", "v8_nosnapshot", "v8_external_snapshot", "v8_base", "v8_libbase", "v8_libplatform"]',
++ 'v8_target_type': 'shared_library',
++ 'v8_use_snapshot': 'true',
++ 'v8_use_external_startup_data': 1,
+ },
+ # Settings to compile node under Windows.
+ 'target_defaults': {
+ 'target_conditions': [
++ ['_target_name in <(v8_libraries) + ["node"]', {
++ 'cflags!': [
++ '-fvisibility=hidden',
++ '-fdata-sections',
++ '-ffunction-sections',
++ ],
++ 'cflags_cc!': [
++ '-fvisibility-inlines-hidden'
++ ],
++ }],
++
++ ['_target_name in <(v8_libraries) + ["mksnapshot"]', {
++ 'defines': [
++ 'V8_SHARED',
++ 'BUILDING_V8_SHARED',
++ ],
++ }],
++
+ ['_target_name in ["libuv", "http_parser", "openssl", "cares", "node", "zlib"]', {
+ 'msvs_disabled_warnings': [
+ 4013, # 'free' undefined; assuming extern returning int
+diff --git a/filenames.gypi b/filenames.gypi
+index abb1145..2330ccf 100644
+--- a/filenames.gypi
++++ b/filenames.gypi
+@@ -498,7 +498,6 @@
+ 'chromium_src/extensions/browser/app_window/size_constraints.h',
+ 'chromium_src/extensions/common/url_pattern.cc',
+ 'chromium_src/extensions/common/url_pattern.h',
+- 'chromium_src/library_loaders/libspeechd_loader.cc',
+ 'chromium_src/library_loaders/libspeechd.h',
+ 'chromium_src/net/test/embedded_test_server/stream_listen_socket.cc',
+ 'chromium_src/net/test/embedded_test_server/stream_listen_socket.h',
+--
+2.7.3
+
diff --git a/dev-util/electron/files/libchromiumcontent-gentoo-build-fixes.patch b/dev-util/electron/files/libchromiumcontent-gentoo-build-fixes.patch
new file mode 100644
index 000000000000..168d8db477a9
--- /dev/null
+++ b/dev-util/electron/files/libchromiumcontent-gentoo-build-fixes.patch
@@ -0,0 +1,75 @@
+From b7022129450eaf2136746f5332956e76848796ef Mon Sep 17 00:00:00 2001
+From: Elvis Pranskevichus <elvis@magic.io>
+Date: Mon, 8 Feb 2016 15:12:12 -0500
+Subject: [PATCH] libchromiumcontent build fixes
+
+---
+ chromiumcontent/chromiumcontent.gyp | 6 +++---
+ chromiumcontent/chromiumcontent.gypi | 26 --------------------------
+ 2 files changed, 3 insertions(+), 29 deletions(-)
+
+diff --git a/chromiumcontent/chromiumcontent.gyp b/chromiumcontent/chromiumcontent.gyp
+index 52a1d36..db74a52 100644
+--- a/chromiumcontent/chromiumcontent.gyp
++++ b/chromiumcontent/chromiumcontent.gyp
+@@ -24,11 +24,11 @@
+ },
+ {
+ 'target_name': 'chromiumcontent',
+- # Build chromiumcontent as shared_library otherwise some static libraries
+- # will not build.
+- 'type': 'shared_library',
++ 'type': 'static_library',
+ 'dependencies': [
+ '<(DEPTH)/base/base.gyp:base_prefs',
++ '<(DEPTH)/chrome/chrome_resources.gyp:packed_extra_resources',
++ '<(DEPTH)/chrome/chrome_resources.gyp:packed_resources',
+ '<(DEPTH)/components/components.gyp:cdm_renderer',
+ '<(DEPTH)/components/components.gyp:devtools_discovery',
+ '<(DEPTH)/components/components.gyp:devtools_http_handler',
+diff --git a/chromiumcontent/chromiumcontent.gypi b/chromiumcontent/chromiumcontent.gypi
+index 37c572b..3f4dcea 100644
+--- a/chromiumcontent/chromiumcontent.gypi
++++ b/chromiumcontent/chromiumcontent.gypi
+@@ -1,17 +1,5 @@
+ {
+ 'variables': {
+- # Enalbe using proprietary codecs.
+- 'proprietary_codecs': 1,
+- 'ffmpeg_branding': 'Chrome',
+- # Enable support for Widevine CDM.
+- 'enable_widevine': 1,
+- # Using libc++ requires building for >= 10.7.
+- 'mac_deployment_target': '10.8',
+- # The 10.8 SDK does not work well with C++11.
+- 'mac_sdk_min': '10.9',
+- # Use the standard way of linking with msvc runtime.
+- 'win_use_allocator_shim': 0,
+- 'win_release_RuntimeLibrary': '2',
+ # The V8 libraries.
+ 'v8_libraries': '["v8", "v8_snapshot", "v8_nosnapshot", "v8_external_snapshot", "v8_base", "v8_libbase", "v8_libplatform"]',
+ # The icu libraries.
+@@ -22,20 +10,6 @@
+ 'v8_use_external_startup_data': 1,
+ }],
+ ['OS=="linux"', {
+- # Enable high DPI support on Linux.
+- 'enable_hidpi': 1,
+- # Use Dbus.
+- 'use_dbus': 1,
+- # Make Linux build contain debug symbols, this flag will add '-g' to
+- # cflags.
+- 'linux_dump_symbols': 1,
+- # The Linux build of libchromiumcontent.so depends on, but doesn't
+- # provide, tcmalloc by default. Disabling tcmalloc here also prevents
+- # any conflicts when linking to binaries or libraries that don't use
+- # tcmalloc.
+- 'linux_use_tcmalloc': 0,
+- # Force using gold linker.
+- 'linux_use_bundled_gold': 1,
+ 'conditions': [
+ ['target_arch=="arm"', {
+ 'arm_version': 7,
+--
+2.4.10
+
diff --git a/dev-util/electron/files/node-gentoo-build-fixes.patch b/dev-util/electron/files/node-gentoo-build-fixes.patch
new file mode 100644
index 000000000000..b19cc3714b2e
--- /dev/null
+++ b/dev-util/electron/files/node-gentoo-build-fixes.patch
@@ -0,0 +1,50 @@
+From 668a003706d57c3e7a460e2fce5d110fe9737a62 Mon Sep 17 00:00:00 2001
+From: Elvis Pranskevichus <elvis@magic.io>
+Date: Wed, 10 Feb 2016 14:45:13 -0500
+Subject: [PATCH] Parametrize v8.gyp location
+
+---
+ node.gyp | 5 +++--
+ tools/install.py | 3 +++
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/node.gyp b/node.gyp
+index d431210..fea5e07 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -1,6 +1,7 @@
+ {
+ 'variables': {
+ 'v8_use_snapshot%': 'false',
++ 'v8_gyp_path%': 'deps/v8/tools/gyp/v8.gyp',
+ 'node_use_dtrace%': 'false',
+ 'node_use_lttng%': 'false',
+ 'node_use_etw%': 'false',
+@@ -89,8 +90,8 @@
+ 'dependencies': [
+ 'node_js2c#host',
+ 'deps/cares/cares.gyp:cares',
+- # 'deps/v8/tools/gyp/v8.gyp:v8',
+- # 'deps/v8/tools/gyp/v8.gyp:v8_libplatform'
++ '<(v8_gyp_path):v8',
++ '<(v8_gyp_path):v8_libplatform'
+ ],
+
+ 'include_dirs': [
+diff --git a/tools/install.py b/tools/install.py
+index cb86c65..ee85e33 100755
+--- a/tools/install.py
++++ b/tools/install.py
+@@ -207,6 +207,9 @@ def run(args):
+ if os.environ.get('HEADERS_ONLY'):
+ if cmd == 'install': return headers(install)
+ if cmd == 'uninstall': return headers(uninstall)
++ elif os.environ.get('NPM_ONLY'):
++ if cmd == 'install': return npm_files(install)
++ if cmd == 'uninstall': return npm_files(uninstall)
+ else:
+ if cmd == 'install': return files(install)
+ if cmd == 'uninstall': return files(uninstall)
+--
+2.7.3
+