All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-browser][PATCH 1/3 V8] cef3: Add recipe for Chromium Embedded Framework
@ 2015-04-28  4:09 Khem Raj
  2015-04-28  4:09 ` [meta-browser][PATCH 2/3 V3] chromium: Remove use of deprecated udev logging API Khem Raj
  2015-04-28  4:09 ` [meta-browser][PATCH 3/3] chromium, cef: Package codecs separately Khem Raj
  0 siblings, 2 replies; 5+ messages in thread
From: Khem Raj @ 2015-04-28  4:09 UTC (permalink / raw)
  To: openembedded-devel; +Cc: pnandyala, Zoltan Kuscsik, knagabhirava

CEF is a framework to embed chromium based browsers into other
applications

Change-Id: Ieabae43042101331f67cf6e673391f6fe320561f
Signed-off-by: pnandyala <Pavan.Nandyala@LntTechservices.com>
Signed-off-by: knagabhirava <kalyankumar.nagabhirava@lnttechservices.com>
Signed-off-by: Zoltan Kuscsik <zoltan.kuscsik@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../cef3/01_get_svn_version_from_LASTCHANGE.patch  |  32 +++
 recipes-browser/chromium/cef3_280796.bb            |  50 ++++
 recipes-browser/chromium/chromium.inc              | 253 +++++++--------------
 recipes-browser/chromium/chromium_40.0.2214.91.bb  | 163 +++++++++++++
 4 files changed, 327 insertions(+), 171 deletions(-)
 create mode 100644 recipes-browser/chromium/cef3/01_get_svn_version_from_LASTCHANGE.patch
 create mode 100644 recipes-browser/chromium/cef3_280796.bb

diff --git a/recipes-browser/chromium/cef3/01_get_svn_version_from_LASTCHANGE.patch b/recipes-browser/chromium/cef3/01_get_svn_version_from_LASTCHANGE.patch
new file mode 100644
index 0000000..9b14429
--- /dev/null
+++ b/recipes-browser/chromium/cef3/01_get_svn_version_from_LASTCHANGE.patch
@@ -0,0 +1,32 @@
+Fetch the revision from LASTCHANGE file programmatically
+
+Upstream-Status: Pending
+
+Signed-off-by: Zoltan Kuscsik <zoltan.kuscsik@linaro.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+diff --git a/cef/tools/make_version_header.py b/cef/tools/make_version_header.py
+index 84d49f5..395c2cf 100644
+--- a/cef/tools/make_version_header.py
++++ b/cef/tools/make_version_header.py
+@@ -64,6 +64,8 @@ def write_svn_header(header, chrome_version, cef_version, cpp_header_dir):
+       revision = svn.get_revision()
+     elif git.is_checkout('.'):
+       revision = git.get_svn_revision()
++    elif os.path.isfile("../build/util/LASTCHANGE"):
++      revision = open("../build/util/LASTCHANGE").read().split("=")[1].strip()
+     else:
+       raise Exception('Not a valid checkout')
+
+diff --git a/cef/tools/revision.py b/cef/tools/revision.py
+index 1d94602..eb89e3b 100644
+--- a/cef/tools/revision.py
++++ b/cef/tools/revision.py
+@@ -16,6 +16,8 @@ if os.path.exists(os.path.join('.', '.svn')):
+   sys.stdout.write(svn.get_revision())
+ elif os.path.exists(os.path.join('.', '.git')):
+   sys.stdout.write(git.get_svn_revision())
++elif os.path.isfile("../build/util/LASTCHANGE"):
++  revision = open("../build/util/LASTCHANGE").read().split("=")[1].strip()
+ else:
+   raise Exception('Not a valid checkout')
diff --git a/recipes-browser/chromium/cef3_280796.bb b/recipes-browser/chromium/cef3_280796.bb
new file mode 100644
index 0000000..9ca5810
--- /dev/null
+++ b/recipes-browser/chromium/cef3_280796.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "Chromium Embedded Framework"
+
+include chromium.inc
+
+RDEPENDS_${PN} += "pango cairo fontconfig pciutils pulseaudio freetype fontconfig-utils"
+
+SRCREV_tools = "99bcb0e676eb396bcf8e1af3903aa4b578aeeee0"
+SRCREV_cef = "bbad53dfca9f98dddcb31a590410fece0a4f0234"
+SRCREV_egl = "a5b81b7617ba6757802b9b5f8c950034d5f961ec"
+SRCREV_FORMAT = "cef_egl_tools"
+
+SRC_URI = "http://people.linaro.org/~zoltan.kuscsik/chromium-browser/chromium_rev_${PV}.tar.xz \
+           git://github.com/kuscsik/chromiumembedded.git;protocol=https;destsuffix=src/cef;branch=aura;name=cef \
+           git://github.com/kuscsik/ozone-egl.git;protocol=https;destsuffix=src/ui/ozone/platform/egl;branch=master;name=egl \
+           git://chromium.googlesource.com/chromium/tools/depot_tools.git;protocol=https;destsuffix=depot_tools;branch=master;name=tools \
+           file://01_get_svn_version_from_LASTCHANGE.patch \
+	  "
+SRC_URI[md5sum] = "9efbb50283b731042e62b9bd5e312b2f"
+SRC_URI[sha256sum] = "f608e97dadf6ea4d885b24fd876896d46840fa39bf743ea2025075aee9fb348d"
+
+S = "${WORKDIR}/chromium_rev_${PV}"
+
+do_fetch[vardeps] += "SRCREV_FORMAT SRCREV_cef SRCREV_egl SRCREV_tools"
+
+GYP_ARCH_DEFINES_armv7a = " target_arch=arm arm_float_abi=hard"
+GYP_ARCH_DEFINES_i586 = " target_arch=ia32"
+
+export GYP_GENERATORS="ninja"
+export BUILD_TARGET_ARCH="${TARGET_ARCH}"
+export GYP_DEFINES="${GYP_ARCH_DEFINES} release_extra_cflags='-Wno-error=unused-local-typedefs' sysroot=''"
+
+do_configure_append() {
+	export PATH=${WORKDIR}/depot_tools:"$PATH"
+	# End of LD Workaround
+	#-----------------------
+	# Configure cef
+	#------------------------
+	cd cef
+	./cef_create_projects.sh -I ${BUILD_TARGET_ARCH}_ozone.gypi --depth ../
+	cd -
+}
+
+# Workaround to disable qa_configure
+do_qa_configure() {
+	echo "do_qa_configure"
+}
+
+do_compile() {
+	ninja -C out/${CHROMIUM_BUILD_TYPE} cefsimple
+}
diff --git a/recipes-browser/chromium/chromium.inc b/recipes-browser/chromium/chromium.inc
index ad976f9..655cf65 100644
--- a/recipes-browser/chromium/chromium.inc
+++ b/recipes-browser/chromium/chromium.inc
@@ -1,114 +1,14 @@
-# Recipe files have to perform the following tasks after including this file:
-# 1) Add patches to SRC_URI. Version specific patches should be contained in a
-#    "chromium-XX" subdirectory, where XX is the major version. There are also
-#    patches that are shared amongst versions but may one day no longer be
-#    needed (like unistd2.patch). These do not belong in such a subdirectory,
-#    but still need to be explicitely be added. Do NOT add ozone-wayland patches
-#    to SRC_URI here!
-# 2) Add md5sum and sha256sum hashes of the tarball.
-# 3) Add ozone-wayland patches to the OZONE_WAYLAND_EXTRA_PATCHES variable.
-#    The rule with the chromium-XX subdirectory also applies here.
-# 4) Set the OZONE_WAYLAND_GIT_BRANCH and OZONE_WAYLAND_GIT_SRCREV values.
-# 5) Optionally, set values for these variables:
-#    * OZONE_WAYLAND_PATCH_FILE_GLOB
-#    * CHROMIUM_X11_DEPENDS
-#    * CHROMIUM_X11_GYP_DEFINES
-#    * CHROMIUM_WAYLAND_DEPENDS
-#    * CHROMIUM_WAYLAND_GYP_DEFINES
-
-DESCRIPTION = "Chromium browser"
 LICENSE = "BSD"
-DEPENDS = "xz-native pciutils pulseaudio cairo nss zlib-native libav libgnome-keyring cups ninja-native gconf libexif pango libdrm"
-SRC_URI = "\
-        http://gsdview.appspot.com/chromium-browser-official/${P}.tar.xz \
-        file://include.gypi \
-        file://oe-defaults.gypi \
-        ${@bb.utils.contains('PACKAGECONFIG', 'component-build', 'file://component-build.gypi', '', d)} \
-        file://google-chrome \
-        file://google-chrome.desktop \
-"
-
-# PACKAGECONFIG explanations:
-#
-# * use-egl : Without this packageconfig, the Chromium build will use GLX for creating an OpenGL context in X11,
-#             and regular OpenGL for painting operations. Neither are desirable on embedded platforms. With this
-#             packageconfig, EGL and OpenGL ES 2.x are used instead. On by default.
-#
-# * disable-api-keys-info-bar : This disables the info bar that warns: "Google API keys are missing". With some
-#                               builds, missing API keys are considered OK, so the bar needs to go.
-#                               Off by default.
-#
-# * component-build : Enables component build mode. By default, all of Chromium (with the exception of FFmpeg)
-#                     is linked into one big binary. The linker step requires at least 8 GB RAM. Component mode
-#                     was created to facilitate development and testing, since with it, there is not one big
-#                     binary; instead, each component is linked to a separate shared object.
-#                     Use component mode for development, testing, and in case the build machine is not a 64-bit
-#                     one, or has less than 8 GB RAM. Off by default.
-#
-# * ignore-lost-context : There is a flaw in the HTML Canvas specification. When the canvas' backing store is
-#                         some kind of hardware resource like an OpenGL texture, this resource might get lost.
-#                         In case of OpenGL textures, this happens when the OpenGL context gets lost. The canvas
-#                         should then be repainted, but nothing in the Canvas standard reflects that.
-#                         This packageconfig is to be used if the underlying OpenGL (ES) drivers do not lose
-#                         the context, or if losing the context is considered okay (note that canvas contents can
-#                         vanish then). Off by default.
-#
-# * impl-side-painting : This is a new painting mechanism. Still in development stages, it can improve performance.
-#                        See http://www.chromium.org/developers/design-documents/impl-side-painting for more.
-#                        Off by default.
-
-# conditionally add ozone-wayland and its patches to the Chromium sources
-
-ENABLE_X11 = "${@base_contains('DISTRO_FEATURES', 'x11', '1', '0', d)}"
-# only enable Wayland if X11 isn't already enabled
-ENABLE_WAYLAND = "${@base_contains('DISTRO_FEATURES', 'x11', '0', \
-                     base_contains('DISTRO_FEATURES', 'wayland', '1', \
-                     '0', d),d)}"
-
-# variable for extra ozone-wayland patches, typically extended by BSP layer .bbappends
-# IMPORTANT: do not simply add extra ozone-wayland patches to the SRC_URI in a
-# .bbappend, since the base ozone-wayland patches need to be applied first (see below)
-
-OZONE_WAYLAND_EXTRA_PATCHES = " "
-
-OZONE_WAYLAND_GIT_DESTSUFFIX = "ozone-wayland-git"
-OZONE_WAYLAND_GIT_BRANCH = ""
-OZONE_WAYLAND_GIT_SRCREV = ""
-SRC_URI += "${@base_conditional('ENABLE_WAYLAND', '1', 'git://github.com/01org/ozone-wayland.git;destsuffix=${OZONE_WAYLAND_GIT_DESTSUFFIX};branch=${OZONE_WAYLAND_GIT_BRANCH};rev=${OZONE_WAYLAND_GIT_SRCREV}', '', d)}"
-OZONE_WAYLAND_PATCH_FILE_GLOB = "*.patch"
-
-do_unpack[postfuncs] += "${@base_conditional('ENABLE_WAYLAND', '1', 'copy_ozone_wayland_files', '', d)}"
-do_patch[prefuncs] += "${@base_conditional('ENABLE_WAYLAND', '1', 'add_ozone_wayland_patches', '', d)}"
-
-copy_ozone_wayland_files() {
-	# ozone-wayland sources must be placed in an "ozone"
-	# subdirectory in ${S} in order for the .gyp build
-	# scripts to work
-	cp -r ${WORKDIR}/ozone-wayland-git ${S}/ozone
-}
-
-python add_ozone_wayland_patches() {
-    import glob
-    srcdir = d.getVar('S', True)
-    # find all ozone-wayland patches and add them to SRC_URI
-    upstream_patches_dir = srcdir + "/ozone/patches"
-    upstream_patches = glob.glob(upstream_patches_dir + "/" + d.getVar('OZONE_WAYLAND_PATCH_FILE_GLOB', True))
-    upstream_patches.sort()
-    for upstream_patch in upstream_patches:
-        d.appendVar('SRC_URI', ' file://' + upstream_patch)
-    # then, add the extra patches to SRC_URI order matters;
-    # extra patches may depend on the base ozone-wayland ones
-    d.appendVar('SRC_URI', ' ' + d.getVar('OZONE_WAYLAND_EXTRA_PATCHES'))
-}
-
+DEPENDS = "xz-native pciutils pulseaudio cairo nss zlib-native libav cups ninja-native gconf libexif pango libdrm"
 
-# include.gypi exists only for armv6 and armv7a and there isn't something like COMPATIBLE_ARCH afaik
 COMPATIBLE_MACHINE = "(-)"
 COMPATIBLE_MACHINE_i586 = "(.*)"
 COMPATIBLE_MACHINE_x86-64 = "(.*)"
 COMPATIBLE_MACHINE_armv6 = "(.*)"
 COMPATIBLE_MACHINE_armv7a = "(.*)"
 
+export CHROMIUM_BUILD_TYPE="Release"
+
 inherit gettext
 
 PACKAGECONFIG ??= "use-egl"
@@ -117,43 +17,7 @@ PACKAGECONFIG ??= "use-egl"
 # automatically and silently fall back to GLX
 PACKAGECONFIG[use-egl] = ",,virtual/egl virtual/libgles2"
 
-EXTRA_OEGYP =	" \
-	-Dangle_use_commit_id=0 \
-	-Dclang=0 \
-	-Dhost_clang=0 \
-	-Ddisable_fatal_linker_warnings=1 \
-	${@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 \
-	${@bb.utils.contains('PACKAGECONFIG', 'component-build', '-I ${WORKDIR}/component-build.gypi', '', d)} \
-	-f ninja \
-"
-ARMFPABI_armv7a = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'arm_float_abi=hard', 'arm_float_abi=softfp', d)}"
-
-CHROMIUM_EXTRA_ARGS ?= " \
-	${@bb.utils.contains('PACKAGECONFIG', 'use-egl', '--use-gl=egl', '', d)} \
-	${@bb.utils.contains('PACKAGECONFIG', 'ignore-lost-context', '--gpu-no-context-lost', '', d)} \
-	${@bb.utils.contains('PACKAGECONFIG', 'impl-side-painting', '--enable-gpu-rasterization --enable-impl-side-painting', '', d)} \
-"
-
-GYP_DEFINES = "${ARMFPABI} release_extra_cflags='-Wno-error=unused-local-typedefs' sysroot=''"
-
-# These are present as their own variables, since they have changed between versions
-# a few times in the past already; making them variables makes it easier to handle that
-CHROMIUM_X11_DEPENDS = "xextproto gtk+ libxi libxss"
-CHROMIUM_X11_GYP_DEFINES = ""
-CHROMIUM_WAYLAND_DEPENDS = "wayland libxkbcommon"
-CHROMIUM_WAYLAND_GYP_DEFINES = "use_ash=1 use_aura=1 chromeos=0 use_ozone=1"
-
-python() {
-    if d.getVar('ENABLE_X11', True) == '1':
-        d.appendVar('DEPENDS', ' %s ' % d.getVar('CHROMIUM_X11_DEPENDS', True))
-        d.appendVar('GYP_DEFINES', ' %s ' % d.getVar('CHROMIUM_X11_GYP_DEFINES', True))
-    if d.getVar('ENABLE_WAYLAND', True) == '1':
-        d.appendVar('DEPENDS', ' %s ' % d.getVar('CHROMIUM_WAYLAND_DEPENDS', True))
-        d.appendVar('GYP_DEFINES', ' %s ' % d.getVar('CHROMIUM_WAYLAND_GYP_DEFINES', True))
-}
+GYP_DEFINES += "${ARMFPABI} release_extra_cflags='-Wno-error=unused-local-typedefs' sysroot=''"
 
 do_configure() {
 	cd ${S}
@@ -164,54 +28,101 @@ do_configure() {
 	CXX="${CXX}" export CXX
 	CC_host="${BUILD_CC}" export CC_host
 	CXX_host="${BUILD_CXX}" export CXX_host
-	build/gyp_chromium --depth=. ${EXTRA_OEGYP}
-}
-
-do_compile() {
-	# build with ninja
-	ninja -C ${S}/out/Release chrome chrome_sandbox
 }
 
 do_install() {
 	install -d ${D}${bindir}
-	install -m 0755 ${WORKDIR}/google-chrome ${D}${bindir}/
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/cefsimple" ]; then
+		install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/cefsimple ${D}${bindir}
+	fi
+	if [ -f "${WORKDIR}/google-chrome" ]; then
+		install -m 0755 ${WORKDIR}/google-chrome ${D}${bindir}/
+	fi
+	install -d ${D}${datadir}/applications
+	if [ -f "${WORKDIR}/google-chrome.desktop" ]; then
+		install -m 0644 ${WORKDIR}/google-chrome.desktop ${D}${datadir}/applications/
+	fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/icudtl.dat" ]; then
+		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/icudtl.dat ${D}${bindir}
+	fi
+	install -d ${D}${libdir}
+        if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/libcef.so" ]; then
+		install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/lib/libcef.so ${D}${libdir}
+        fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/libosmesa.so" ]; then
+		install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/libosmesa.so ${D}${libdir}
+	fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/libffmpegsumo.so" ]; then
+		install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/libffmpegsumo.so ${D}${libdir}
+	fi
+	install -d ${D}${bindir}/chrome
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/chrome" ]; then
+		install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/chrome ${D}${bindir}/chrome/chrome
+	fi
+	#Chromium *.pak files
 
-	# Add extra command line arguments to google-chrome script by modifying
-	# the dummy "CHROME_EXTRA_ARGS" line
-	sed -i "s/^CHROME_EXTRA_ARGS=\"\"/CHROME_EXTRA_ARGS=\"${CHROMIUM_EXTRA_ARGS}\"/" ${D}${bindir}/google-chrome
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/content_resources.pak" ]; then
+		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/content_resources.pak ${D}${bindir}/chrome
+	fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/keyboard_resources.pak" ]; then
+		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/keyboard_resources.pak ${D}${bindir}/chrome
+	fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/chrome_100_percent.pak" ]; then
+		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/chrome_100_percent.pak ${D}${bindir}/chrome
+	fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/product_logo_48.png" ]; then
+		install -m 0644 ${S}/out/${CHROMIUM_BUILD_TYPE}/product_logo_48.png ${D}${bindir}/chrome/
+    	fi
 
-	install -d ${D}${datadir}/applications
-	install -m 0644 ${WORKDIR}/google-chrome.desktop ${D}${datadir}/applications/
-
-	install -d ${D}${bindir}/chrome/
-	install -m 0755 ${S}/out/Release/chrome ${D}${bindir}/chrome/chrome
-	install -m 0644 ${S}/out/Release/resources.pak ${D}${bindir}/chrome/
-	install -m 0644 ${S}/out/Release/icudtl.dat ${D}${bindir}/chrome/
-	install -m 0644 ${S}/out/Release/content_resources.pak ${D}${bindir}/chrome/
-	install -m 0644 ${S}/out/Release/keyboard_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/
-
-	# Always adding this libdir (not just with component builds), because the
-	# LD_LIBRARY_PATH line in the google-chromium script refers to it
-	install -d ${D}${libdir}/chrome/
-	if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'component-build', 'component-build', '', d)}" ]; then
-		install -m 0755 ${S}/out/Release/lib/*.so ${D}${libdir}/chrome/
+    	# CEF *.pak files
+
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/cef_100_percent.pak" ]; then
+		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/cef_100_percent.pak ${D}${bindir}/chrome
 	fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/cef_200_percent.pak" ]; then
+		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/cef_200_percent.pak ${D}${bindir}/chrome
+	fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/cef_resources.pak" ]; then
+		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/cef_resources.pak ${D}${bindir}/chrome
+	fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/cef.pak" ]; then
+		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/cef.pak ${D}${bindir}/chrome
+	fi
+	install -d ${D}${bindir}/chrome/locales
+	install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/locales/en-US.pak ${D}${bindir}/chrome/locales
 
 	install -d ${D}${sbindir}
-	install -m 4755 ${S}/out/Release/chrome_sandbox ${D}${sbindir}/chrome-devel-sandbox
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/chrome_sandbox" ]; then
+		install -m 4755 ${B}/out/${CHROMIUM_BUILD_TYPE}/chrome_sandbox ${D}${sbindir}/chrome-devel-sandbox
+	fi
+
+	# take care of yocto-way libraries naming (versions)
+	cd ${D}${libdir}
+	for library in $(find -type f -name '*.so'); do
+		startDir="$(pwd)"
+		cd "$(dirname "$library")"
+		rm -f "$library.0.0.1"
+		mv "$library" "$library.0.0.1"
+		ln -sf "$library.0.0.1" "$library.0.0"
+		ln -sf "$library.0.0" "$library.0"
+		ln -sf "$library.0" "$library"
+		cd "$startDir"
+	done
 
-	install -d ${D}${bindir}/chrome/locales/
-	install -m 0644 ${S}/out/Release/locales/en-US.pak ${D}${bindir}/chrome/locales
 }
 
+
 FILES_${PN} = "${bindir}/chrome/ ${bindir}/google-chrome ${datadir}/applications ${sbindir}/ ${libdir}/chrome/"
 FILES_${PN}-dbg += "${bindir}/chrome/.debug/ ${libdir}/chrome/.debug/"
 
 PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
 
+INSANE_SKIP_${PN} = "ldflags"
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${bindir} ${bindir}/chrome/ ${libdir}"
+FILES_${PN} += "${bindir}/chrome/*.pak"
+FILES_${PN} += "${bindir}/chrome/locales/*.pak"
+FILES_${PN}-dbg += "${bindir}/chrome/.debug/ ${libdir}/.debug/"
 
 
 
diff --git a/recipes-browser/chromium/chromium_40.0.2214.91.bb b/recipes-browser/chromium/chromium_40.0.2214.91.bb
index d0ff07d..3a5108e 100644
--- a/recipes-browser/chromium/chromium_40.0.2214.91.bb
+++ b/recipes-browser/chromium/chromium_40.0.2214.91.bb
@@ -1,4 +1,82 @@
+# Recipe files have to perform the following tasks after including this file:
+# 1) Add patches to SRC_URI. Version specific patches should be contained in a
+#    "chromium-XX" subdirectory, where XX is the major version. There are also
+#    patches that are shared amongst versions but may one day no longer be
+#    needed (like unistd2.patch). These do not belong in such a subdirectory,
+#    but still need to be explicitely be added. Do NOT add ozone-wayland patches
+#    to SRC_URI here!
+# 2) Add md5sum and sha256sum hashes of the tarball.
+# 3) Add ozone-wayland patches to the OZONE_WAYLAND_EXTRA_PATCHES variable.
+#    The rule with the chromium-XX subdirectory also applies here.
+# 4) Set the OZONE_WAYLAND_GIT_BRANCH and OZONE_WAYLAND_GIT_SRCREV values.
+# 5) Optionally, set values for these variables:
+#    * OZONE_WAYLAND_PATCH_FILE_GLOB
+#    * CHROMIUM_X11_DEPENDS
+#    * CHROMIUM_X11_GYP_DEFINES
+#    * CHROMIUM_WAYLAND_DEPENDS
+#    * CHROMIUM_WAYLAND_GYP_DEFINES
+
+DESCRIPTION = "Chromium browser"
+DEPENDS += "libgnome-keyring"
 include chromium.inc
+SRC_URI = "\
+        http://gsdview.appspot.com/chromium-browser-official/${P}.tar.xz \
+        file://include.gypi \
+        file://oe-defaults.gypi \
+        ${@bb.utils.contains('PACKAGECONFIG', 'component-build', 'file://component-build.gypi', '', d)} \
+        file://google-chrome \
+        file://google-chrome.desktop \
+"
+#
+# * use-egl : Without this packageconfig, the Chromium build will use GLX for creating an OpenGL context in X11,
+#             and regular OpenGL for painting operations. Neither are desirable on embedded platforms. With this
+#             packageconfig, EGL and OpenGL ES 2.x are used instead. On by default.
+#
+# * disable-api-keys-info-bar : This disables the info bar that warns: "Google API keys are missing". With some
+#                               builds, missing API keys are considered OK, so the bar needs to go.
+#                               Off by default.
+#
+# * component-build : Enables component build mode. By default, all of Chromium (with the exception of FFmpeg)
+#                     is linked into one big binary. The linker step requires at least 8 GB RAM. Component mode
+#                     was created to facilitate development and testing, since with it, there is not one big
+#                     binary; instead, each component is linked to a separate shared object.
+#                     Use component mode for development, testing, and in case the build machine is not a 64-bit
+#                     one, or has less than 8 GB RAM. Off by default.
+#
+# * ignore-lost-context : There is a flaw in the HTML Canvas specification. When the canvas' backing store is
+#                         some kind of hardware resource like an OpenGL texture, this resource might get lost.
+#                         In case of OpenGL textures, this happens when the OpenGL context gets lost. The canvas
+#                         should then be repainted, but nothing in the Canvas standard reflects that.
+#                         This packageconfig is to be used if the underlying OpenGL (ES) drivers do not lose
+#                         the context, or if losing the context is considered okay (note that canvas contents can
+#                         vanish then). Off by default.
+#
+# * impl-side-painting : This is a new painting mechanism. Still in development stages, it can improve performance.
+#                        See http://www.chromium.org/developers/design-documents/impl-side-painting for more.
+#                        Off by default.
+
+# conditionally add ozone-wayland and its patches to the Chromium sources
+
+ENABLE_X11 = "${@base_contains('DISTRO_FEATURES', 'x11', '1', '0', d)}"
+# only enable Wayland if X11 isn't already enabled
+ENABLE_WAYLAND = "${@base_contains('DISTRO_FEATURES', 'x11', '0', \
+                     base_contains('DISTRO_FEATURES', 'wayland', '1', \
+                     '0', d),d)}"
+
+# variable for extra ozone-wayland patches, typically extended by BSP layer .bbappends
+# IMPORTANT: do not simply add extra ozone-wayland patches to the SRC_URI in a
+# .bbappend, since the base ozone-wayland patches need to be applied first (see below)
+
+OZONE_WAYLAND_EXTRA_PATCHES = " "
+
+OZONE_WAYLAND_GIT_DESTSUFFIX = "ozone-wayland-git"
+OZONE_WAYLAND_GIT_BRANCH = ""
+OZONE_WAYLAND_GIT_SRCREV = ""
+SRC_URI += "${@base_conditional('ENABLE_WAYLAND', '1', 'git://github.com/01org/ozone-wayland.git;destsuffix=${OZONE_WAYLAND_GIT_DESTSUFFIX};branch=${OZONE_WAYLAND_GIT_BRANCH};rev=${OZONE_WAYLAND_GIT_SRCREV}', '', d)}"
+OZONE_WAYLAND_PATCH_FILE_GLOB = "*.patch"
+
+do_unpack[postfuncs] += "${@base_conditional('ENABLE_WAYLAND', '1', 'copy_ozone_wayland_files', '', d)}"
+do_patch[prefuncs] += "${@base_conditional('ENABLE_WAYLAND', '1', 'add_ozone_wayland_patches', '', d)}"
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=537e0b52077bf0a616d0a0c8a79bc9d5"
 SRC_URI += "\
@@ -30,3 +108,88 @@ python() {
         if bb.utils.contains('PACKAGECONFIG', 'component-build', True, False, d):
             bb.fatal("Chromium 40 Wayland version cannot be built in component-mode")
 }
+
+copy_ozone_wayland_files() {
+	# ozone-wayland sources must be placed in an "ozone"
+	# subdirectory in ${S} in order for the .gyp build
+	# scripts to work
+	cp -r ${WORKDIR}/ozone-wayland-git ${S}/ozone
+}
+
+python add_ozone_wayland_patches() {
+    import glob
+    srcdir = d.getVar('S', True)
+    # find all ozone-wayland patches and add them to SRC_URI
+    upstream_patches_dir = srcdir + "/ozone/patches"
+    upstream_patches = glob.glob(upstream_patches_dir + "/" + d.getVar('OZONE_WAYLAND_PATCH_FILE_GLOB', True))
+    upstream_patches.sort()
+    for upstream_patch in upstream_patches:
+        d.appendVar('SRC_URI', ' file://' + upstream_patch)
+    # then, add the extra patches to SRC_URI order matters;
+    # extra patches may depend on the base ozone-wayland ones
+    d.appendVar('SRC_URI', ' ' + d.getVar('OZONE_WAYLAND_EXTRA_PATCHES'))
+}
+
+EXTRA_OEGYP =	" \
+	-Dangle_use_commit_id=0 \
+	-Dclang=0 \
+	-Dhost_clang=0 \
+	-Ddisable_fatal_linker_warnings=1 \
+	${@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 \
+	${@bb.utils.contains('PACKAGECONFIG', 'component-build', '-I ${WORKDIR}/component-build.gypi', '', d)} \
+	-f ninja \
+"
+ARMFPABI_armv7a = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'arm_float_abi=hard', 'arm_float_abi=softfp', d)}"
+
+CHROMIUM_EXTRA_ARGS ?= " \
+	${@bb.utils.contains('PACKAGECONFIG', 'use-egl', '--use-gl=egl', '', d)} \
+	${@bb.utils.contains('PACKAGECONFIG', 'ignore-lost-context', '--gpu-no-context-lost', '', d)} \
+	${@bb.utils.contains('PACKAGECONFIG', 'impl-side-painting', '--enable-gpu-rasterization --enable-impl-side-painting', '', d)} \
+"
+
+GYP_DEFINES += "${ARMFPABI} release_extra_cflags='-Wno-error=unused-local-typedefs' sysroot=''"
+
+# These are present as their own variables, since they have changed between versions
+# a few times in the past already; making them variables makes it easier to handle that
+CHROMIUM_X11_DEPENDS = "xextproto gtk+ libxi libxss"
+CHROMIUM_X11_GYP_DEFINES = ""
+CHROMIUM_WAYLAND_DEPENDS = "wayland libxkbcommon"
+CHROMIUM_WAYLAND_GYP_DEFINES = "use_ash=1 use_aura=1 chromeos=0 use_ozone=1"
+
+python() {
+    if d.getVar('ENABLE_X11', True) == '1':
+        d.appendVar('DEPENDS', ' %s ' % d.getVar('CHROMIUM_X11_DEPENDS', True))
+        d.appendVar('GYP_DEFINES', ' %s ' % d.getVar('CHROMIUM_X11_GYP_DEFINES', True))
+    if d.getVar('ENABLE_WAYLAND', True) == '1':
+        d.appendVar('DEPENDS', ' %s ' % d.getVar('CHROMIUM_WAYLAND_DEPENDS', True))
+        d.appendVar('GYP_DEFINES', ' %s ' % d.getVar('CHROMIUM_WAYLAND_GYP_DEFINES', True))
+}
+
+do_configure_append() {
+
+	build/gyp_chromium --depth=. ${EXTRA_OEGYP}
+
+}
+
+do_compile() {
+        # build with ninja
+        ninja -C ${S}/out/${CHROMIUM_BUILD_TYPE} chrome chrome_sandbox
+}
+
+
+do_install_append() {
+
+	# Add extra command line arguments to google-chrome script by modifying
+        # the dummy "CHROME_EXTRA_ARGS" line
+        sed -i "s/^CHROME_EXTRA_ARGS=\"\"/CHROME_EXTRA_ARGS=\"${CHROMIUM_EXTRA_ARGS}\"/" ${D}${bindir}/google-chrome
+
+	# Always adding this libdir (not just with component builds), because the
+        # LD_LIBRARY_PATH line in the google-chromium script refers to it
+        install -d ${D}${libdir}/chrome/
+        if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'component-build', 'component-build', '', d)}" ]; then
+                install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/lib/*.so ${D}${libdir}/chrome/
+        fi
+}
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [meta-browser][PATCH 2/3 V3] chromium: Remove use of deprecated udev logging API
  2015-04-28  4:09 [meta-browser][PATCH 1/3 V8] cef3: Add recipe for Chromium Embedded Framework Khem Raj
@ 2015-04-28  4:09 ` Khem Raj
  2015-04-28  4:09 ` [meta-browser][PATCH 3/3] chromium, cef: Package codecs separately Khem Raj
  1 sibling, 0 replies; 5+ messages in thread
From: Khem Raj @ 2015-04-28  4:09 UTC (permalink / raw)
  To: openembedded-devel

in systemd >= 218 libudev deprecated support for udev_set_log_fn
see
https://github.com/systemd/systemd/commit/25e773eeb4f853804e1bf0dbd9a184f23e9b2a97

Change-Id: If6e3742bd2a70685f2521f134d5965bf2d1f8f72
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../chromium/chromium-40/0010-systemd-218.patch    | 39 ++++++++++++++++++++++
 recipes-browser/chromium/chromium_40.0.2214.91.bb  |  1 +
 2 files changed, 40 insertions(+)
 create mode 100644 recipes-browser/chromium/chromium/chromium-40/0010-systemd-218.patch

diff --git a/recipes-browser/chromium/chromium/chromium-40/0010-systemd-218.patch b/recipes-browser/chromium/chromium/chromium-40/0010-systemd-218.patch
new file mode 100644
index 0000000..3aec8d0
--- /dev/null
+++ b/recipes-browser/chromium/chromium/chromium-40/0010-systemd-218.patch
@@ -0,0 +1,39 @@
+Remove use of udev_set_log_priority API its gone in systemd >= 218
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: chromium-40.0.2214.91/ui/events/ozone/device/udev/device_manager_udev.cc
+===================================================================
+--- chromium-40.0.2214.91.orig/ui/events/ozone/device/udev/device_manager_udev.cc
++++ chromium-40.0.2214.91/ui/events/ozone/device/udev/device_manager_udev.cc
+@@ -33,29 +33,9 @@ enum {
+   SYS_LOG_DEBUG = 7,
+ };
+ 
+-// Log handler for messages generated from libudev.
+-void UdevLog(struct udev* udev,
+-             int priority,
+-             const char* file,
+-             int line,
+-             const char* fn,
+-             const char* format,
+-             va_list args) {
+-  if (priority <= SYS_LOG_ERR)
+-    LOG(ERROR) << "libudev: " << fn << ": " << base::StringPrintV(format, args);
+-  else if (priority <= SYS_LOG_INFO)
+-    VLOG(1) << "libudev: " << fn << ": " << base::StringPrintV(format, args);
+-  else  // SYS_LOG_DEBUG
+-    VLOG(2) << "libudev: " << fn << ": " << base::StringPrintV(format, args);
+-}
+-
+ // Create libudev context.
+ device::ScopedUdevPtr UdevCreate() {
+   struct udev* udev = udev_new();
+-  if (udev) {
+-    udev_set_log_fn(udev, UdevLog);
+-    udev_set_log_priority(udev, SYS_LOG_DEBUG);
+-  }
+   return device::ScopedUdevPtr(udev);
+ }
+ 
diff --git a/recipes-browser/chromium/chromium_40.0.2214.91.bb b/recipes-browser/chromium/chromium_40.0.2214.91.bb
index 3a5108e..53af755 100644
--- a/recipes-browser/chromium/chromium_40.0.2214.91.bb
+++ b/recipes-browser/chromium/chromium_40.0.2214.91.bb
@@ -91,6 +91,7 @@ SRC_URI[sha256sum] = "f72fda9ff1ea256ab911610ee532eadf8303137d431f2481d01d3d60e5
 
 OZONE_WAYLAND_EXTRA_PATCHES += " \
         file://chromium-40/0005-Remove-X-libraries-from-GYP-files.patch \
+        file://chromium-40/0010-systemd-218.patch \
 "
 OZONE_WAYLAND_GIT_BRANCH = "Milestone-ThanksGiving"
 OZONE_WAYLAND_GIT_SRCREV = "5d7baa9bc3b8c88e9b7e476e3d6bc8cd44a887fe"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [meta-browser][PATCH 3/3] chromium, cef: Package codecs separately
  2015-04-28  4:09 [meta-browser][PATCH 1/3 V8] cef3: Add recipe for Chromium Embedded Framework Khem Raj
  2015-04-28  4:09 ` [meta-browser][PATCH 2/3 V3] chromium: Remove use of deprecated udev logging API Khem Raj
@ 2015-04-28  4:09 ` Khem Raj
  2015-05-12 21:18   ` Martin Jansa
  1 sibling, 1 reply; 5+ messages in thread
From: Khem Raj @ 2015-04-28  4:09 UTC (permalink / raw)
  To: openembedded-devel

chromium does not use versioned shared objects so deal with it
Remove the band-aid to pretend to have versioning shared objects
put the ffmpeg plugins in directory of its own in /usr/lib to
avoid namespace conflict with same .so coming from other codec packages

Change-Id: Ia9dceaa84844086fe8918246eb864d91ab4ec6aa
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 recipes-browser/chromium/chromium.inc | 30 +++++++++++-------------------
 1 file changed, 11 insertions(+), 19 deletions(-)

diff --git a/recipes-browser/chromium/chromium.inc b/recipes-browser/chromium/chromium.inc
index 655cf65..9c34a68 100644
--- a/recipes-browser/chromium/chromium.inc
+++ b/recipes-browser/chromium/chromium.inc
@@ -46,14 +46,17 @@ do_install() {
 		install -m 0644 ${B}/out/${CHROMIUM_BUILD_TYPE}/icudtl.dat ${D}${bindir}
 	fi
 	install -d ${D}${libdir}
-        if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/libcef.so" ]; then
+        if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/lib/libcef.so" ]; then
 		install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/lib/libcef.so ${D}${libdir}
         fi
+	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/libpdf.so" ]; then
+		install -Dm 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/libpdf.so ${D}${libdir}/chrome/libpdf.so
+	fi
 	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/libosmesa.so" ]; then
-		install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/libosmesa.so ${D}${libdir}
+		install -Dm 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/libosmesa.so ${D}${libdir}/chrome/libosmesa.so
 	fi
 	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/libffmpegsumo.so" ]; then
-		install -m 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/libffmpegsumo.so ${D}${libdir}
+		install -Dm 0755 ${B}/out/${CHROMIUM_BUILD_TYPE}/libffmpegsumo.so ${D}${libdir}/chrome/libffmpegsumo.so
 	fi
 	install -d ${D}${bindir}/chrome
 	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/chrome" ]; then
@@ -95,22 +98,12 @@ do_install() {
 	if [ -f "${B}/out/${CHROMIUM_BUILD_TYPE}/chrome_sandbox" ]; then
 		install -m 4755 ${B}/out/${CHROMIUM_BUILD_TYPE}/chrome_sandbox ${D}${sbindir}/chrome-devel-sandbox
 	fi
-
-	# take care of yocto-way libraries naming (versions)
-	cd ${D}${libdir}
-	for library in $(find -type f -name '*.so'); do
-		startDir="$(pwd)"
-		cd "$(dirname "$library")"
-		rm -f "$library.0.0.1"
-		mv "$library" "$library.0.0.1"
-		ln -sf "$library.0.0.1" "$library.0.0"
-		ln -sf "$library.0.0" "$library.0"
-		ln -sf "$library.0" "$library"
-		cd "$startDir"
-	done
-
 }
 
+PACKAGES =+ "${PN}-codecs-ffmpeg ${PN}-plugin-pdf"
+
+FILES_${PN}-codecs-ffmpeg = "${libdir}/chrome/libffmpegsumo.so"
+FILES_${PN}-plugin-pdf = "${libdir}/chrome/libpdf.so"
 
 FILES_${PN} = "${bindir}/chrome/ ${bindir}/google-chrome ${datadir}/applications ${sbindir}/ ${libdir}/chrome/"
 FILES_${PN}-dbg += "${bindir}/chrome/.debug/ ${libdir}/chrome/.debug/"
@@ -118,11 +111,10 @@ FILES_${PN}-dbg += "${bindir}/chrome/.debug/ ${libdir}/chrome/.debug/"
 PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
 
 INSANE_SKIP_${PN} = "ldflags"
+SOLIBS = ".so"
 FILES_SOLIBSDEV = ""
 FILES_${PN} += "${bindir} ${bindir}/chrome/ ${libdir}"
 FILES_${PN} += "${bindir}/chrome/*.pak"
 FILES_${PN} += "${bindir}/chrome/locales/*.pak"
 FILES_${PN}-dbg += "${bindir}/chrome/.debug/ ${libdir}/.debug/"
 
-
-
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [meta-browser][PATCH 3/3] chromium, cef: Package codecs separately
  2015-04-28  4:09 ` [meta-browser][PATCH 3/3] chromium, cef: Package codecs separately Khem Raj
@ 2015-05-12 21:18   ` Martin Jansa
  2015-05-12 21:44     ` Khem Raj
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Jansa @ 2015-05-12 21:18 UTC (permalink / raw)
  To: openembedded-devel

On Tue, Apr 28, 2015 at 04:09:55AM +0000, Khem Raj wrote:
> chromium does not use versioned shared objects so deal with it
> Remove the band-aid to pretend to have versioning shared objects
> put the ffmpeg plugins in directory of its own in /usr/lib to
> avoid namespace conflict with same .so coming from other codec packages

There is still some overlap between chromium and cef recipes:

ERROR: The recipe cef3 is trying to install files into a shared area
when those files already exist. Those files and their manifest location
are:
   /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86/usr/lib/chrome/libpdf.so
 Matched in manifest-qemux86-chromium.populate_sysroot
 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86/usr/lib/chrome/libffmpegsumo.so
 Matched in manifest-qemux86-chromium.populate_sysroot
Please verify which recipe should provide the above files.

Can we please disable staging these 2 libraries in one of them?

Regards,


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [meta-browser][PATCH 3/3] chromium, cef: Package codecs separately
  2015-05-12 21:18   ` Martin Jansa
@ 2015-05-12 21:44     ` Khem Raj
  0 siblings, 0 replies; 5+ messages in thread
From: Khem Raj @ 2015-05-12 21:44 UTC (permalink / raw)
  To: openembeded-devel

On Tue, May 12, 2015 at 2:18 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
> There is still some overlap between chromium and cef recipes:
>
> ERROR: The recipe cef3 is trying to install files into a shared area
> when those files already exist. Those files and their manifest location
> are:
>    /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86/usr/lib/chrome/libpdf.so
>  Matched in manifest-qemux86-chromium.populate_sysroot
>  /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86/usr/lib/chrome/libffmpegsumo.so
>  Matched in manifest-qemux86-chromium.populate_sysroot
> Please verify which recipe should provide the above files.
>
> Can we please disable staging these 2 libraries in one of them?

actually cef should put it under /usr/lib/cef/ then they can live happily


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-05-12 21:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-28  4:09 [meta-browser][PATCH 1/3 V8] cef3: Add recipe for Chromium Embedded Framework Khem Raj
2015-04-28  4:09 ` [meta-browser][PATCH 2/3 V3] chromium: Remove use of deprecated udev logging API Khem Raj
2015-04-28  4:09 ` [meta-browser][PATCH 3/3] chromium, cef: Package codecs separately Khem Raj
2015-05-12 21:18   ` Martin Jansa
2015-05-12 21:44     ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.