aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVenture Research <tech@ventureresearch.com>2013-01-24 02:47:00 -0600
committerEric Bénard <eric@eukrea.com>2013-02-05 13:49:55 +0100
commit5a1ddeda142e871acdcc69342b9593a3595024c8 (patch)
tree9a3964fe5b2ce78ad2d92eced8ffc440f1c30c28
parent242ad3ce45df0e359e705639f1771925c5c3fe80 (diff)
chromium: adding updated version 24.0.1312.52; refactor build
The chromium build now requires ninja-native to build, as it builds faster than make. Refactor EXTRA_OEGYP so that it is passed via include.gypi and oe-defaults.gypi files. This allows for custom per-platform builds. Add support for qemux86 target, as well as existing armv7a (tested) and armv6 (not tested.) Signed-off-by: Venture Research <tech@ventureresearch.com> Signed-off-by: Eric Bénard <eric@eukrea.com>
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/armv6/include.gypi8
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/armv6/oe-defaults.gypi15
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/armv7a/include.gypi9
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/armv7a/oe-defaults.gypi15
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/glib-2.16-use-siginfo_t.patch35
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/i586/include.gypi5
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/i586/oe-defaults.gypi15
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/ui-gl-no-narrowing.patch20
-rw-r--r--recipes-browser/chromium/chromium-24.0.1312.52/unistd-2.patch27
-rw-r--r--recipes-browser/chromium/chromium_24.0.1312.52.bb64
10 files changed, 213 insertions, 0 deletions
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/armv6/include.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/armv6/include.gypi
new file mode 100644
index 0000000..2c88271
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/armv6/include.gypi
@@ -0,0 +1,8 @@
+{
+ 'variables': {
+ # Configure for armv6 compilation
+ 'target_arch': 'arm',
+ 'armv7': 0,
+ 'arm_neon': 0,
+ }
+}
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/armv6/oe-defaults.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/armv6/oe-defaults.gypi
new file mode 100644
index 0000000..27e1cfe
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/armv6/oe-defaults.gypi
@@ -0,0 +1,15 @@
+{
+ 'variables': {
+ 'use_system_bzip2': 1,
+ 'disable_nacl': 1,
+ 'proprietary_codecs': 1,
+ 'v8_use_snapshot': 1,
+ 'use_system_ffmpeg': 0,
+ 'linux_use_tcmalloc': 0,
+ 'linux_link_kerberos': 0,
+ 'use_kerberos': 0,
+ 'use_cups': 0,
+ 'use_gnome_keyring': 0,
+ 'linux_link_gnome_keyring': 0
+ },
+}
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/include.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/include.gypi
new file mode 100644
index 0000000..316cf48
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/include.gypi
@@ -0,0 +1,9 @@
+{
+ 'variables': {
+ # Configure for armv7 compilation
+ 'target_arch': 'arm',
+ 'armv7': 1,
+ 'arm_thumb': 1,
+ 'arm_neon': 1,
+ },
+}
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/oe-defaults.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/oe-defaults.gypi
new file mode 100644
index 0000000..27e1cfe
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/armv7a/oe-defaults.gypi
@@ -0,0 +1,15 @@
+{
+ 'variables': {
+ 'use_system_bzip2': 1,
+ 'disable_nacl': 1,
+ 'proprietary_codecs': 1,
+ 'v8_use_snapshot': 1,
+ 'use_system_ffmpeg': 0,
+ 'linux_use_tcmalloc': 0,
+ 'linux_link_kerberos': 0,
+ 'use_kerberos': 0,
+ 'use_cups': 0,
+ 'use_gnome_keyring': 0,
+ 'linux_link_gnome_keyring': 0
+ },
+}
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/glib-2.16-use-siginfo_t.patch b/recipes-browser/chromium/chromium-24.0.1312.52/glib-2.16-use-siginfo_t.patch
new file mode 100644
index 0000000..f4ee9fb
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/glib-2.16-use-siginfo_t.patch
@@ -0,0 +1,35 @@
+diff -upr chromium-20.0.1132.57.orig/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h chromium-20.0.1132.57/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
+--- chromium-20.0.1132.57.orig/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h 2012-07-10 10:48:31.000000000 +0300
++++ chromium-20.0.1132.57/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h 2012-07-11 23:44:11.000000000 +0300
+@@ -243,14 +243,13 @@ struct kernel_rusage {
+ long ru_nivcsw;
+ };
+
+-struct siginfo;
+ #if defined(__i386__) || defined(__arm__) || defined(__PPC__)
+
+ /* include/asm-{arm,i386,mips,ppc}/signal.h */
+ struct kernel_old_sigaction {
+ union {
+ void (*sa_handler_)(int);
+- void (*sa_sigaction_)(int, struct siginfo *, void *);
++ void (*sa_sigaction_)(int, siginfo_t *, void *);
+ };
+ unsigned long sa_mask;
+ unsigned long sa_flags;
+@@ -287,13 +286,13 @@ struct kernel_sigaction {
+ unsigned long sa_flags;
+ union {
+ void (*sa_handler_)(int);
+- void (*sa_sigaction_)(int, struct siginfo *, void *);
++ void (*sa_sigaction_)(int, siginfo_t *, void *);
+ };
+ struct kernel_sigset_t sa_mask;
+ #else
+ union {
+ void (*sa_handler_)(int);
+- void (*sa_sigaction_)(int, struct siginfo *, void *);
++ void (*sa_sigaction_)(int, siginfo_t *, void *);
+ };
+ unsigned long sa_flags;
+ void (*sa_restorer)(void);
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/i586/include.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/i586/include.gypi
new file mode 100644
index 0000000..69f3a08
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/i586/include.gypi
@@ -0,0 +1,5 @@
+{
+ 'variables': {
+ 'target_arch': 'ia32',
+ }
+}
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/i586/oe-defaults.gypi b/recipes-browser/chromium/chromium-24.0.1312.52/i586/oe-defaults.gypi
new file mode 100644
index 0000000..0a6e8e8
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/i586/oe-defaults.gypi
@@ -0,0 +1,15 @@
+{
+ 'variables': {
+ 'use_system_bzip2': 1,
+ 'disable_nacl': 1,
+ 'proprietary_codecs': 0,
+ 'v8_use_snapshot': 1,
+ 'use_system_ffmpeg': 0,
+ 'linux_use_tcmalloc': 1,
+ 'linux_link_kerberos': 0,
+ 'use_kerberos': 0,
+ 'use_cups': 0,
+ 'use_gnome_keyring': 0,
+ 'linux_link_gnome_keyring': 0,
+ },
+}
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/ui-gl-no-narrowing.patch b/recipes-browser/chromium/chromium-24.0.1312.52/ui-gl-no-narrowing.patch
new file mode 100644
index 0000000..d48befb
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/ui-gl-no-narrowing.patch
@@ -0,0 +1,20 @@
+diff --git a/ui/gl/gl.gyp b/ui/gl/gl.gyp
+index 3d0ffb8..d38e87a 100644
+--- a/ui/gl/gl.gyp
++++ b/ui/gl/gl.gyp
+@@ -36,6 +36,15 @@
+ '<(gl_binding_output_dir)',
+ ],
+ },
++ # Disable narrowing-conversion-in-initialization-list warnings in that we
++ # do not want to fix
++ # ../../ui/gl/gl_image_glx.cc: In member function 'virtual bool gfx::GLImageGLX::Initialize()'
++ # ../../ui/gl/gl_image_glx.cc:90:3: error: narrowing conversion of
++ # 'visinfo.scoped_ptr_malloc<C, FreeProc>::operator-><XVisualInfo,
++ # gfx::{anonymous}::ScopedPtrXFree>()->XVisualInfo::visualid'
++ # from 'VisualID {aka long unsigned int}' to 'int' inside { } is ill-formed in C++11 [-Werror=narrowing]
++ 'cflags+': ['-Wno-narrowing'],
++ 'cflags_cc+': ['-Wno-narrowing'],
+ 'sources': [
+ 'gl_bindings.h',
+ 'gl_bindings_skia_in_process.cc',
diff --git a/recipes-browser/chromium/chromium-24.0.1312.52/unistd-2.patch b/recipes-browser/chromium/chromium-24.0.1312.52/unistd-2.patch
new file mode 100644
index 0000000..6b5018b
--- /dev/null
+++ b/recipes-browser/chromium/chromium-24.0.1312.52/unistd-2.patch
@@ -0,0 +1,27 @@
+diff --git a/chrome/browser/memory_details_linux.cc b/chrome/browser/memory_details_linux.cc
+index bee24ce..299f237 100644
+--- a/chrome/browser/memory_details_linux.cc
++++ b/chrome/browser/memory_details_linux.cc
+@@ -7,6 +7,10 @@
+ #include <map>
+ #include <set>
+
++#if defined(OS_POSIX)
++#include <unistd.h>
++#endif
++
+ #include "base/bind.h"
+ #include "base/process_util.h"
+ #include "base/string_util.h"
+diff --git a/ipc/ipc_channel.h b/ipc/ipc_channel.h
+index 14c375b..345f9eb 100644
+--- a/ipc/ipc_channel.h
++++ b/ipc/ipc_channel.h
+@@ -10,6 +10,7 @@
+
+ #if defined(OS_POSIX)
+ #include <sys/types.h>
++#include <unistd.h>
+ #endif
+
+ #include "base/compiler_specific.h"
diff --git a/recipes-browser/chromium/chromium_24.0.1312.52.bb b/recipes-browser/chromium/chromium_24.0.1312.52.bb
new file mode 100644
index 0000000..85d4173
--- /dev/null
+++ b/recipes-browser/chromium/chromium_24.0.1312.52.bb
@@ -0,0 +1,64 @@
+DESCRIPTION = "Chromium browser"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0750f191c9bbf46869b70508e7eb455b"
+DEPENDS = "xextproto cairo nss gtk+-native zlib-native libav libxi libgnome-keyring libxss cups ninja-native"
+
+SRC_URI = "http://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.bz2 \
+ file://include.gypi \
+ file://oe-defaults.gypi \
+ file://unistd-2.patch \
+ file://glib-2.16-use-siginfo_t.patch \
+ file://ui-gl-no-narrowing.patch \
+"
+
+# include.gypi exists only for armv6 and armv7a and there isn't something like COMPATIBLE_ARCH afaik
+COMPATIBLE_MACHINE = "(-)"
+COMPATIBLE_MACHINE_i586 = "(.*)"
+COMPATIBLE_MACHINE_armv6 = "(.*)"
+COMPATIBLE_MACHINE_armv7a = "(.*)"
+
+SRC_URI[md5sum] = "ed027b16b20e673af6dcf1831a6d8652"
+SRC_URI[sha256sum] = "f30df8b0f4c999185bb11d873f0caa5d8bc581eb4f37ce0fe85fb7900a01d711"
+
+inherit gettext
+
+EXTRA_OEGYP = " \
+ ${@base_contains('DISTRO_FEATURES', 'ld-is-gold', '', '-Dlinux_use_gold_binary=0', d)} \
+ ${@base_contains('DISTRO_FEATURES', 'ld-is-gold', '', '-Dlinux_use_gold_flags=0', d)} \
+ -I ${WORKDIR}/oe-defaults.gypi \
+ -I ${WORKDIR}/include.gypi \
+ -f ninja \
+"
+
+do_configure() {
+ cd ${S}
+ # replace LD with CXX, to workaround a possible gyp issue?
+ LD="${CXX}" export LD
+ CC="${CC}" export CC
+ CXX="${CXX}" export CXX
+ CC_host="gcc" export CC_host
+ CXX_host="g++" export CXX_host
+ build/gyp_chromium --depth=. ${EXTRA_OEGYP}
+}
+
+do_compile() {
+ # build with ninja
+ ninja -C ${S}/out/Release chrome
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${bindir}/chrome/
+ install -m 0755 ${S}/out/Release/chrome ${D}${bindir}/chrome/chrome
+ install -m 0644 ${S}/out/Release/chrome.pak ${D}${bindir}/chrome/
+ install -m 0644 ${S}/out/Release/resources.pak ${D}${bindir}/chrome/
+ install -m 0644 ${S}/out/Release/chrome_100_percent.pak ${D}${bindir}/chrome/
+ install -m 0644 ${S}/out/Release/product_logo_48.png ${D}${bindir}/chrome/
+ install -m 0755 ${S}/out/Release/libffmpegsumo.so ${D}${bindir}/chrome/
+
+ install -d ${D}${bindir}/chrome/locales/
+ install -m 0644 ${S}/out/Release/locales/en-US.pak ${D}${bindir}/chrome/locales
+}
+
+FILES_${PN} = "${bindir}/chrome/"
+FILES_${PN}-dbg = "${bindir}/chrome/.debug/"