summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb1
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb1
-rw-r--r--recipes-wam/chromium/chromium-browser-service.bb19
-rw-r--r--recipes-wam/chromium/chromium.inc (renamed from recipes-wam/chromium/chromium68_git.bb)114
-rw-r--r--recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch40
-rw-r--r--recipes-wam/chromium/chromium79/0001-GCC-fix-includes-for-gcc-10.patch101
-rw-r--r--recipes-wam/chromium/chromium79_git.bb60
-rw-r--r--recipes-wam/chromium/gn-utils.inc151
-rw-r--r--recipes-wam/wam/files/WebAppMgr@.service2
-rw-r--r--recipes-wam/wam/wam_git.bb14
10 files changed, 209 insertions, 294 deletions
diff --git a/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb b/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb
index cc9ed3d6..a857a15b 100644
--- a/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb
+++ b/recipes-platform/packagegroups/packagegroup-agl-appfw-html5.bb
@@ -13,6 +13,5 @@ ALLOW_EMPTY_${PN} = "1"
# add packages for WAM
RDEPENDS_${PN} += " \
- chromium-browser-service \
wam \
"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb b/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb
index 176bfefd..751743b3 100644
--- a/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb
+++ b/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb
@@ -13,7 +13,6 @@ ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
packagegroup-agl-image-ivi \
- packagegroup-agl-profile-graphical-html5 \
packagegroup-agl-demo \
"
diff --git a/recipes-wam/chromium/chromium-browser-service.bb b/recipes-wam/chromium/chromium-browser-service.bb
deleted file mode 100644
index 90242d79..00000000
--- a/recipes-wam/chromium/chromium-browser-service.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Chromium browser widget"
-DESCRIPTION = "Wgt packaging for running chromium installed browser"
-HOMEPAGE = "https://webosose.org"
-SECTION = "apps"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/chromium;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "${AGL_APP_REVISION}"
-
-PV = "1.0+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-#build-time dependencies
-DEPENDS += "af-binder af-main-native chromium68"
-
-inherit cmake aglwgt
-
-RDEPENDS_${PN} += "chromium68-browser"
diff --git a/recipes-wam/chromium/chromium68_git.bb b/recipes-wam/chromium/chromium.inc
index 4f545c14..82301603 100644
--- a/recipes-wam/chromium/chromium68_git.bb
+++ b/recipes-wam/chromium/chromium.inc
@@ -18,12 +18,6 @@ DEPENDS = "virtual/gettext wayland wayland-native pixman freetype glib-2.0 fontc
PROVIDES = "${BROWSER_APPLICATION}"
-SRC_URI = "\
- git://github.com/igalia/${BPN};branch=WIP@39.agl.compositor;protocol=https;rev=${SRCREV_chromium68};name=chromium68 \
- git://github.com/webosose/v8;destsuffix=git/src/v8;rev=${SRCREV_v8};name=v8 \
- file://v8-qemu-wrapper.patch \
-"
-SRCREV_chromium68 = "61e96d1ee5dfc2461697457d287bf922d8a03d9a"
SRCREV_v8 = "1e3af71f1ff3735e8a5b639c48dfca63a7b8a647"
# we don't include SRCPV in PV, so we have to manually include SRCREVs in do_fetch vardeps
@@ -43,18 +37,13 @@ BROWSER_APP_BUILD_TARGET = "chrome"
BROWSER_APPLICATION = "chromium68-browser"
BROWSER_APPLICATION_DIR = "/opt/chromium68"
-TARGET = "${WEBRUNTIME_BUILD_TARGET} ${BROWSER_APP_BUILD_TARGET}"
+TARGET = "${WEBRUNTIME_BUILD_TARGET}"
# Skip do_install_append of webos_system_bus. It is not compatible with this component.
WEBOS_SYSTEM_BUS_FILES_LOCATION = "${S}/files/sysbus"
PACKAGECONFIG ?= "jumbo use-upstream-wayland"
-# Options to enable debug-webcore build.
-# Add the following line to local.conf (or local.dev.inc) to enable them:
-# PACKAGECONFIG_append_pn-chromium68 = " debug-webcore"
-# Other debug options are controlled by sections later in this file
-PACKAGECONFIG[debug-webcore] = "remove_webcore_debug_symbols=false,remove_webcore_debug_symbols=true"
# Set a default value for jumbo file merge of 8. This should be good for build
# servers and workstations with a big number of cores. In case build is
@@ -86,16 +75,16 @@ GN_ARGS = "\
treat_warnings_as_errors=false\
is_agl=true\
use_cbe=true\
- is_chrome_cbe=true\
+ is_chrome_cbe=false\
use_cups=false\
use_custom_libcxx=false\
use_kerberos=false\
use_neva_media=false\
use_ozone=true\
use_xkbcommon=true\
+ use_wayland_gbm=false\
use_pmlog=false\
use_system_debugger_abort=true\
- use_webos_gpu_info_collector=false\
${PACKAGECONFIG_CONFARGS}\
"
@@ -140,21 +129,6 @@ GN_ARGS += "symbol_level=0"
# let Yocto handle everything.
GN_ARGS += "use_sysroot=false"
-# Toolchains we will use for the build. We need to point to the toolchain file
-# we've created, set the right target architecture and make sure we are not
-# using Chromium's toolchain (bundled clang, bundled binutils etc).
-GN_ARGS += "\
- custom_toolchain=\"//build/toolchain/yocto:yocto_target\" \
- gold_path=\"\" \
- host_toolchain=\"//build/toolchain/yocto:yocto_native\" \
- is_clang=${@is_default_cc_clang(d)} \
- clang_base_path=\"${@clang_install_path(d)}\" \
- clang_use_chrome_plugins=false \
- linux_use_bundled_binutils=false \
- target_cpu=\"${@gn_target_arch_name(d)}\" \
- v8_snapshot_toolchain=\"//build/toolchain/yocto:yocto_target\" \
-"
-
# ARM builds need special additional flags (see ${S}/build/config/arm.gni).
# If we do not pass |arm_arch| and friends to GN, it will deduce a value that
# will then conflict with TUNE_CCARGS and CC.
@@ -200,43 +174,6 @@ GN_ARGS_append_armv6 += 'arm_use_neon=false'
# https://github.com/gperftools/gperftools/issues/693
GN_ARGS_append_libc-musl = ' use_allocator_shim=false'
-# V8's JIT infrastructure requires binaries such as mksnapshot and
-# mkpeephole to be run in the host during the build. However, these
-# binaries must have the same bit-width as the target (e.g. a x86_64
-# host targeting ARMv6 needs to produce a 32-bit binary). Instead of
-# depending on a third Yocto toolchain, we just build those binaries
-# for the target and run them on the host with QEMU.
-python do_create_v8_qemu_wrapper () {
- """Creates a small wrapper that invokes QEMU to run some target V8 binaries
- on the host."""
- qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'),
- d.expand('${STAGING_DIR_HOST}${base_libdir}')]
- qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST', True),
- qemu_libdirs)
- wrapper_path = d.expand('${B}/v8-qemu-wrapper.sh')
- with open(wrapper_path, 'w') as wrapper_file:
- wrapper_file.write("""#!/bin/sh
-
-# This file has been generated automatically.
-# It invokes QEMU to run binaries built for the target in the host during the
-# build process.
-
-%s "$@"
-""" % qemu_cmd)
- os.chmod(wrapper_path, 0o755)
-}
-do_create_v8_qemu_wrapper[dirs] = "${B}"
-addtask create_v8_qemu_wrapper after do_patch before do_configure
-
-python do_write_toolchain_file () {
- """Writes a BUILD.gn file for Yocto detailing its toolchains."""
- toolchain_dir = d.expand("${S}/src/build/toolchain/yocto")
- bb.utils.mkdirhier(toolchain_dir)
- toolchain_file = os.path.join(toolchain_dir, "BUILD.gn")
- write_toolchain_file(d, toolchain_file)
-}
-addtask write_toolchain_file after do_patch before do_configure
-
# More options to speed up the build
GN_ARGS += "\
enable_nacl=false\
@@ -248,12 +185,6 @@ GN_ARGS += "\
use_pulseaudio=false\
"
-# Respect ld-is-gold in DISTRO_FEATURES when enabling gold
-# Similar patch applied in meta-browser
-# http://patchwork.openembedded.org/patch/77755/
-EXTRA_OEGN_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'use_gold=true', 'use_gold=false', d)}"
-GN_ARGS += "${EXTRA_OEGN_GOLD}"
-
# Doesn't build for armv[45]*
COMPATIBLE_MACHINE = "(-)"
COMPATIBLE_MACHINE_aarch64 = "(.*)"
@@ -279,7 +210,7 @@ do_compile() {
fi
export PATH="${S}/depot_tools:$PATH"
- ${S}/depot_tools/ninja -v -C ${OUT_DIR}/${BUILD_TYPE} ${TARGET}
+ ${S}/depot_tools/ninja ${PARALLEL_MAKE} -v -C ${OUT_DIR}/${BUILD_TYPE} ${TARGET}
}
do_configure() {
@@ -331,35 +262,38 @@ install_chromium_browser() {
}
install_webruntime() {
+
+ # # Generate install webos webview files
+ # ${S}/depot_tools/ninja ${PARALLEL_MAKE} -C ${OUT_DIR}/${BUILD_TYPE} webos/install/weboswebruntime
+
+ # # Move installation files to D directory
+ # mv ${OUT_DIR}/${BUILD_TYPE}/image/* ${D}
+ # # Rename include and locale directories
+ # mv ${D}${includedir}/webruntime ${D}${includedir}/${BPN}
+ # mv ${D}${CBE_DATA_PATH}/neva_locales ${D}${CBE_DATA_LOCALES_PATH}
+
+ # # move this to separate mksnapshot-cross recipe once we figure out how to build just cross mksnapshot from chromium repository
+ # install -d ${D}${bindir_cross}
+ # gzip -c ${OUT_DIR}/${BUILD_TYPE}/${MKSNAPSHOT_PATH}mksnapshot > ${D}${bindir_cross}/${HOST_SYS}-mksnapshot.gz
+
install -d ${D}${libdir}
install -d ${D}${includedir}/${BPN}
install -d ${D}${CBE_DATA_PATH}
install -d ${D}${CBE_DATA_LOCALES_PATH}
# Install webos webview files
- if [ -e "${SRC_DIR}/webos/install" ]; then
- cd ${SRC_DIR}
- xargs --arg-file=${SRC_DIR}/webos/install/weboswebruntime/staging_inc.list cp --parents --target-directory=${D}${includedir}/${BPN}
-
- cd ${OUT_DIR}/${BUILD_TYPE}
-
- cp libcbe.so ${D}${libdir}/
- if [ "${WEBOS_LTTNG_ENABLED}" = "1" ]; then
- # use bindir if building non-cbe
- cp libchromium_lttng_provider.so ${D}${libdir}/
- fi
- xargs --arg-file=${SRC_DIR}/webos/install/weboswebruntime/binary.list cp --parents --target-directory=${D}${CBE_DATA_PATH}
- cat ${SRC_DIR}/webos/install/weboswebruntime/data_locales.list | xargs -I{} install -m 755 -p {} ${D}${CBE_DATA_LOCALES_PATH}
- fi
+ ${S}/depot_tools/ninja ${PARALLEL_MAKE} -C ${OUT_DIR}/${BUILD_TYPE} webos/install/weboswebruntime
+ chown root:root -R ${D}${libdir}
+ chown root:root -R ${D}${includedir}
# move this to separate mksnapshot-cross recipe once we figure out how to build just cross mksnapshot from chromium repository
- install -d ${D}${bindir_cross}
- gzip -c ${OUT_DIR}/${BUILD_TYPE}/${MKSNAPSHOT_PATH}mksnapshot > ${D}${bindir_cross}/${HOST_SYS}-mksnapshot.gz
+ install -d ${D}${base_bindir}
+ gzip -c ${OUT_DIR}/${BUILD_TYPE}/${MKSNAPSHOT_PATH}mksnapshot > ${D}${base_bindir}/${HOST_SYS}-mksnapshot.gz
+
}
do_install() {
install_webruntime
- install_chromium_browser
}
WEBOS_SYSTEM_BUS_DIRS_LEGACY_BROWSER_APPLICATION = " \
diff --git a/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch b/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch
deleted file mode 100644
index 485766b0..00000000
--- a/recipes-wam/chromium/chromium68/v8-qemu-wrapper.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Upstream-Status: Inappropriate [embedder specific]
-
-The patch below makes the V8 binaries run during the build be invoked through
-QEMU, as they are built for the target.
-
-Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Signed-off-by: Maksim Sisov <msisov@igalia.com>
-
-Index: git/src/tools/v8_context_snapshot/BUILD.gn
-===================================================================
---- git.orig/src/tools/v8_context_snapshot/BUILD.gn
-+++ git/src/tools/v8_context_snapshot/BUILD.gn
-@@ -62,6 +62,7 @@ if (use_v8_context_snapshot) {
- output_path = rebase_path(output_file, root_build_dir)
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(
- get_label_info(
- ":v8_context_snapshot_generator($v8_snapshot_toolchain)",
-Index: git/src/v8/BUILD.gn
-===================================================================
---- git.orig/src/v8/BUILD.gn
-+++ git/src/v8/BUILD.gn
-@@ -900,6 +900,7 @@ action("run_torque") {
- }
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(get_label_info(":torque($v8_torque_toolchain)",
- "root_out_dir") + "/torque",
- root_build_dir),
-@@ -977,6 +978,7 @@ template("run_mksnapshot") {
- data = []
-
- args = [
-+ "./v8-qemu-wrapper.sh",
- "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
- "root_out_dir") + "/mksnapshot",
- root_build_dir),
diff --git a/recipes-wam/chromium/chromium79/0001-GCC-fix-includes-for-gcc-10.patch b/recipes-wam/chromium/chromium79/0001-GCC-fix-includes-for-gcc-10.patch
new file mode 100644
index 00000000..c3f8abdf
--- /dev/null
+++ b/recipes-wam/chromium/chromium79/0001-GCC-fix-includes-for-gcc-10.patch
@@ -0,0 +1,101 @@
+From 07c48d101166930daa13bbcab6bf5c6be89a8bd8 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Tue, 7 Apr 2020 10:02:27 +0000
+Subject: [PATCH] GCC: fix includes for gcc-10
+
+From
+https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-81-gcc-10.patch
+---
+ src/base/trace_event/trace_event_memory_overhead.h | 1 +
+ src/chrome/browser/search/background/ntp_backgrounds.h | 1 +
+ src/media/cdm/supported_cdm_versions.h | 1 +
+ src/third_party/angle/include/platform/Platform.h | 1 +
+ src/third_party/perfetto/include/perfetto/base/task_runner.h | 1 +
+ src/third_party/webrtc/call/rtx_receive_stream.h | 1 +
+ .../webrtc/modules/audio_processing/aec3/clockdrift_detector.h | 1 +
+ 7 files changed, 7 insertions(+)
+
+diff --git a/src/base/trace_event/trace_event_memory_overhead.h b/src/base/trace_event/trace_event_memory_overhead.h
+index 69468d464..3f5b786aa 100644
+--- a/src/base/trace_event/trace_event_memory_overhead.h
++++ b/src/base/trace_event/trace_event_memory_overhead.h
+@@ -9,6 +9,7 @@
+ #include <stdint.h>
+
+ #include <unordered_map>
++#include <string>
+
+ #include "base/base_export.h"
+ #include "base/macros.h"
+diff --git a/src/chrome/browser/search/background/ntp_backgrounds.h b/src/chrome/browser/search/background/ntp_backgrounds.h
+index 7afc0a230..ea5818e0d 100644
+--- a/src/chrome/browser/search/background/ntp_backgrounds.h
++++ b/src/chrome/browser/search/background/ntp_backgrounds.h
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+
+ #include <array>
++#include <cstddef>
+
+ class GURL;
+
+diff --git a/src/media/cdm/supported_cdm_versions.h b/src/media/cdm/supported_cdm_versions.h
+index 2b54e197b..f34a2a265 100644
+--- a/src/media/cdm/supported_cdm_versions.h
++++ b/src/media/cdm/supported_cdm_versions.h
+@@ -6,6 +6,7 @@
+ #define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
+
+ #include <array>
++#include <cstddef>
+
+ #include "media/base/media_export.h"
+ #include "media/cdm/api/content_decryption_module.h"
+diff --git a/src/third_party/angle/include/platform/Platform.h b/src/third_party/angle/include/platform/Platform.h
+index cea607055..829ada6d0 100644
+--- a/src/third_party/angle/include/platform/Platform.h
++++ b/src/third_party/angle/include/platform/Platform.h
+@@ -11,6 +11,7 @@
+
+ #include <stdint.h>
+ #include <array>
++#include <cstddef>
+
+ #define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482
+
+diff --git a/src/third_party/perfetto/include/perfetto/base/task_runner.h b/src/third_party/perfetto/include/perfetto/base/task_runner.h
+index cf6040123..02658e713 100644
+--- a/src/third_party/perfetto/include/perfetto/base/task_runner.h
++++ b/src/third_party/perfetto/include/perfetto/base/task_runner.h
+@@ -18,6 +18,7 @@
+ #define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+
+ #include <functional>
++#include <cstdint>
+
+ #include "perfetto/base/export.h"
+
+diff --git a/src/third_party/webrtc/call/rtx_receive_stream.h b/src/third_party/webrtc/call/rtx_receive_stream.h
+index 8ffa4400a..113a8168b 100644
+--- a/src/third_party/webrtc/call/rtx_receive_stream.h
++++ b/src/third_party/webrtc/call/rtx_receive_stream.h
+@@ -12,6 +12,7 @@
+ #define CALL_RTX_RECEIVE_STREAM_H_
+
+ #include <map>
++#include <cstdint>
+
+ #include "call/rtp_packet_sink_interface.h"
+
+diff --git a/src/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h b/src/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+index 22528c948..69e624e8b 100644
+--- a/src/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/src/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+
+ #include <array>
++#include <cstddef>
+
+ namespace webrtc {
+
diff --git a/recipes-wam/chromium/chromium79_git.bb b/recipes-wam/chromium/chromium79_git.bb
new file mode 100644
index 00000000..37ebb41b
--- /dev/null
+++ b/recipes-wam/chromium/chromium79_git.bb
@@ -0,0 +1,60 @@
+require chromium.inc
+
+SRC_URI = "\
+ git://github.com/igalia/${PN};branch=@45.agl.jellyfish;protocol=https;rev=${SRCREV_chromium79};name=chromium79 \
+ git://github.com/webosose/chromium-v8;branch=@chromium79;destsuffix=git/src/v8;rev=${SRCREV_v8};name=v8 \
+ file://0001-GCC-fix-includes-for-gcc-10.patch \
+"
+
+# Needed by catapult
+DEPENDS += "python-six-native python-beautifulsoup4-native python-lxml-native python-html5lib-native python-webencodings-native"
+
+SRCREV_chromium79 = "c568380f34a275ed5430f3927b1bdee0e14220e0"
+SRCREV_v8 = "e876fd0e28bd3bda5815394874183b7e6079d440"
+
+BROWSER_APPLICATION = "chromium79-browser"
+BROWSER_APPLICATION_DIR = "/opt/chromium79"
+MKSNAPSHOT_PATH = "v8_snapshot/"
+
+GN_ARGS += "use_gtk=false"
+
+# Disable closure_compile
+# Else we need HOSTTOOLS += "java"
+GN_ARGS += "closure_compile=false"
+
+# When using meta-clang, one can switch to using the lld linker
+# by using the ld-is-lld distro feature otherwise use gold linker
+GN_ARGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', 'use_lld=true use_gold=false', 'use_lld=false use_gold=true', d)}"
+
+# Toolchains we will use for the build. We need to point to the toolchain file
+# we've created, set the right target architecture and make sure we are not
+# using Chromium's toolchain (bundled clang, bundled binutils etc).
+GN_ARGS += "\
+ host_toolchain=\"//build/toolchain/cros:host\" \
+ cros_host_is_clang=false \
+ use_custom_libcxx_for_host=false \
+ cros_host_ar=\"${BUILD_AR}\" \
+ cros_host_cc=\"${BUILD_CC}\" \
+ cros_host_cxx=\"${BUILD_CXX}\" \
+ cros_host_extra_ldflags=\"${BUILD_LDFLAGS}\" \
+ custom_toolchain=\"//build/toolchain/cros:target\" \
+ is_clang=false \
+ use_custom_libcxx=false \
+ target_cpu=\"${@gn_arch_name('${TUNE_ARCH}')}\" \
+ cros_target_ar=\"${AR}\" \
+ cros_target_cc=\"${CC}\" \
+ cros_target_cxx=\"${CXX}\" \
+ cros_target_extra_ldflags=\"${LDFLAGS}\" \
+ v8_snapshot_toolchain=\"//build/toolchain/cros:v8_snapshot\" \
+ cros_v8_snapshot_is_clang=false \
+ cros_v8_snapshot_ar=\"${BUILD_AR}\" \
+ cros_v8_snapshot_cc=\"${BUILD_CC}\" \
+ cros_v8_snapshot_cxx=\"${BUILD_CXX}\" \
+ linux_use_bundled_binutils=false \
+ gold_path=\"\" \
+ v8_enable_embedded_builtins=false \
+ use_v8_context_snapshot=false \
+"
+
+D = "${OUT_DIR}/${BUILD_TYPE}/image"
+
diff --git a/recipes-wam/chromium/gn-utils.inc b/recipes-wam/chromium/gn-utils.inc
index 0fd55a63..156b56d2 100644
--- a/recipes-wam/chromium/gn-utils.inc
+++ b/recipes-wam/chromium/gn-utils.inc
@@ -16,142 +16,17 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
-# GN host architecture helpers.
-#
-# BUILD_ARCH's value corresponds to what uname returns as the machine name.
-# The mapping in gn_host_arch_name() tries to match several possible values
-# returned by the Linux kernel in uname(2) into the corresponding values GN
-# understands.
-def gn_host_arch_name(d):
- """Returns a GN architecture name corresponding to the build host's machine
- architecture."""
- import re
- arch_translations = {
- r'aarch64.*': 'arm64',
- r'arm.*': 'arm',
- r'i[3456]86$': 'x86',
- r'x86_64$': 'x64',
- }
- build_arch = d.getVar("BUILD_ARCH")
- for arch_regexp, gn_arch_name in arch_translations.items():
- if re.match(arch_regexp, build_arch):
- return gn_arch_name
- bb.fatal('Unsuported BUILD_ARCH value: "%s"' % build_arch)
-
-# GN target architecture helpers.
-#
-# Determining the target architecture is more difficult, as there are many
-# different values we can use on the Yocto side (e.g. TUNE_ARCH, TARGET_ARCH,
-# MACHINEOVERRIDES etc). What we do is define the mapping with regular,
-# non-Python variables with overrides that are generic enough (i.e. "x86"
-# instead of "i586") and then use gn_target_arch_name() to return the right
-# value with some validation.
-GN_TARGET_ARCH_NAME_aarch64 = "arm64"
-GN_TARGET_ARCH_NAME_arm = "arm"
-GN_TARGET_ARCH_NAME_x86 = "x86"
-GN_TARGET_ARCH_NAME_x86-64 = "x64"
-
-BUILD_CC_toolchain-clang = "clang"
-BUILD_CXX_toolchain-clang = "clang++"
-BUILD_LD_toolchain-clang = "clang"
-
-# knob for clang, when using meta-clang to provide clang and case where
-# clang happens to be default compiler for OE we should let it use clang
-def is_default_cc_clang(d):
- """Return true if clang is default cross compiler."""
- toolchain = d.getVar("TOOLCHAIN")
- overrides = d.getVar("OVERRIDES")
- if toolchain == "clang" and "toolchain-clang" in overrides.split(":"):
- return "true"
- return "false"
-
-def clang_install_path(d):
- """Return clang compiler install path."""
- return d.getVar("STAGING_BINDIR_NATIVE")
-
-def gn_target_arch_name(d):
- """Returns a GN architecture name corresponding to the target machine's
- architecture."""
- name = d.getVar("GN_TARGET_ARCH_NAME")
- if name is None:
- bb.fatal('Unsupported target architecture. A valid override for the '
- 'GN_TARGET_ARCH_NAME variable could not be found.')
- return name
-
-def write_toolchain_file(d, file_path):
- """Creates a complete GN toolchain file in |file_path|."""
- import string
- gcc_toolchain_tmpl = string.Template(
- 'gcc_toolchain("${toolchain_name}") {\n'
- ' cc = "${cc}"\n'
- ' cxx = "${cxx}"\n'
- ' ar = "${ar}"\n'
- ' ld = cxx # GN expects a compiler, not a linker.\n'
- ' nm = "${nm}"\n'
- ' readelf = "${readelf}"\n'
- ' extra_cflags = "${extra_cflags}"\n'
- ' extra_cppflags = "${extra_cppflags}"\n'
- ' extra_cxxflags = "${extra_cxxflags}"\n'
- ' extra_ldflags = "${extra_ldflags}"\n'
- ' toolchain_args = {\n'
- ' current_cpu = "${current_cpu}"\n'
- ' current_os = "linux"\n'
- ' is_clang = false\n'
- ' }\n'
- '}\n'
- )
- clang_toolchain_tmpl = string.Template(
- 'clang_toolchain("clang_${toolchain_name}") {\n'
- ' extra_cflags = "${extra_cflags}"\n'
- ' extra_cppflags = "${extra_cppflags}"\n'
- ' extra_cxxflags = "${extra_cxxflags}"\n'
- ' extra_ldflags = "${extra_ldflags}"\n'
- ' toolchain_args = {\n'
- ' current_cpu = "${current_cpu}"\n'
- ' current_os = "linux"\n'
- ' is_clang = true\n'
- ' use_gold = true\n'
- ' }\n'
- '}\n'
- )
-
- native_toolchain = {
- 'toolchain_name': 'yocto_native',
- 'current_cpu': gn_host_arch_name(d),
- 'cc': d.expand('${BUILD_CC}'),
- 'cxx': d.expand('${BUILD_CXX}'),
- 'ar': d.expand('${BUILD_AR}'),
- 'nm': d.expand('${BUILD_NM}'),
- 'readelf': d.expand('${BUILD_PREFIX}readelf'),
- 'extra_cflags': d.expand('${BUILD_CFLAGS}'),
- 'extra_cppflags': d.expand('${BUILD_CPPFLAGS}'),
- 'extra_cxxflags': d.expand('${BUILD_CXXFLAGS}'),
- 'extra_ldflags': d.expand('${BUILD_LDFLAGS}'),
- }
- target_toolchain = {
- 'toolchain_name': 'yocto_target',
- 'current_cpu': gn_target_arch_name(d),
- 'cc': d.expand('${CC}'),
- 'cxx': d.expand('${CXX}'),
- 'ar': d.expand('${AR}'),
- 'nm': d.expand('${NM}'),
- 'readelf': d.expand('${TARGET_PREFIX}readelf'),
- 'extra_cflags': d.expand('${TARGET_CFLAGS}'),
- 'extra_cppflags': d.expand('${TARGET_CPPFLAGS}'),
- 'extra_cxxflags': d.expand('${TARGET_CXXFLAGS}'),
- 'extra_ldflags': d.expand('${TARGET_LDFLAGS}'),
- 'strip': '',
+def gn_arch_name(yocto_arch):
+ """Translates between Yocto's architecture values and the corresponding
+ ones used by GN."""
+ translation_table = {
+ 'aarch64': 'arm64',
+ 'arm': 'arm',
+ 'i586': 'x86',
+ 'i686': 'x86',
+ 'x86_64': 'x64',
}
-
- with open(file_path, 'w') as toolchain_file:
- toolchain_file.write(
- '# This file has been generated automatically.\n'
- '\n'
- 'import("//build/config/sysroot.gni")\n'
- 'import("//build/toolchain/gcc_toolchain.gni")\n'
- '\n'
- )
- toolchain_file.write(gcc_toolchain_tmpl.substitute(native_toolchain))
- toolchain_file.write(gcc_toolchain_tmpl.substitute(target_toolchain))
- toolchain_file.write(clang_toolchain_tmpl.substitute(native_toolchain))
- toolchain_file.write(clang_toolchain_tmpl.substitute(target_toolchain))
+ try:
+ return translation_table[yocto_arch]
+ except KeyError:
+ bb.fatal('"%s" is not a supported architecture.' % yocto_arch)
diff --git a/recipes-wam/wam/files/WebAppMgr@.service b/recipes-wam/wam/files/WebAppMgr@.service
index a855bf9f..5dfed9c5 100644
--- a/recipes-wam/wam/files/WebAppMgr@.service
+++ b/recipes-wam/wam/files/WebAppMgr@.service
@@ -29,7 +29,7 @@ EnvironmentFile=-/etc/default/WebAppMgr.env
Environment=XDG_RUNTIME_DIR=/run/user/%i
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%i/bus
Environment=WAM_DATA_PATH="/home/%i/wamdata"
-ExecStart=/usr/bin/WebAppMgr --no-sandbox --in-process-gpu --remote-debugging-port=9998 --user-data-dir="/home/%i/wamdata" --webos-wam
+ExecStart=/usr/bin/WebAppMgr --no-sandbox --use-viz-fmp-with-timeout=0 --in-process-gpu --remote-debugging-port=9998 --user-data-dir="/home/%i/wamdata" --webos-wam
Restart=on-failure
RestartSec=50
diff --git a/recipes-wam/wam/wam_git.bb b/recipes-wam/wam/wam_git.bb
index d50a14fa..ab3a1ae0 100644
--- a/recipes-wam/wam/wam_git.bb
+++ b/recipes-wam/wam/wam_git.bb
@@ -5,27 +5,33 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7ca
inherit cmake
-DEPENDS = "glib-2.0 jsoncpp boost chromium68 wayland-ivi-extension libhomescreen"
+DEPENDS = "glib-2.0 jsoncpp boost chromium79 libhomescreen"
EXTRA_OECMAKE = "\
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${prefix} \
-DPLATFORM_NAME=${@'${DISTRO}'.upper().replace('-', '_')} \
- -DCHROMIUM_SRC_DIR=${STAGING_INCDIR}/chromium68"
+ -DCHROMIUM_SRC_DIR=${STAGING_INCDIR}/chromium79"
PR="r0"
PROVIDES += "virtual/webruntime"
RPROVIDES_${PN} += "virtual/webruntime"
+# Disable some of securit_flags
+# Disable D_FORTIFY_SOURCE=2 and -fstack-protector-strong
+# Refer conf/distro/include/security_flags.inc in meta-webos/conf/distro/include/webos.inc
+lcl_maybe_fortify = ""
+SECURITY_STACK_PROTECTOR = ""
+
SRC_URI = "\
- git://github.com/igalia/${BPN}.git;branch=WIP@6.agl.compositor;protocol=https \
+ git://github.com/igalia/${BPN}.git;branch=@43.agl.jellyfish;protocol=https \
file://WebAppMgr@.service \
file://WebAppMgr.env \
file://trunc-webapp-roles.patch \
"
S = "${WORKDIR}/git"
-SRCREV = "bd650046b688eb1593ae68c16ba3912837507d08"
+SRCREV = "88e9df41cf6dfbcb5d2ea10c769a44e69171a1c3"
do_install_append() {
install -d ${D}${sysconfdir}/wam