summaryrefslogtreecommitdiffstats
path: root/recipes-wam
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2023-11-17 16:07:15 +0100
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2023-11-23 14:48:51 +0000
commit54cc3c843ca4477b23c86f2029039f413a2b31d1 (patch)
tree8b1c56ace0bb4823201505a2fc541d7baabf701b /recipes-wam
parentbbdcf9e0a6d3e9a4ca3279f36afe6180d74f9e63 (diff)
Make CEF the default and deprecate chromium
We complete the migration to CEF (Chromium Embedded Framework) by making CEF the default and deprecating the outdated chromium recipe. Bug-AGL: SPEC-4975 Change-Id: I59e3cdedda46ad74947a7b7e8d51dea70ecbd033 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29449 Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account
Diffstat (limited to 'recipes-wam')
-rw-r--r--recipes-wam/cef/cef_git.bb5
-rw-r--r--recipes-wam/chromium/chromium.inc266
-rw-r--r--recipes-wam/chromium/chromium_git.bb84
-rw-r--r--recipes-wam/chromium/gn-utils.inc32
-rw-r--r--recipes-wam/wam/wam.inc12
-rw-r--r--recipes-wam/wam/wam_git.bb2
6 files changed, 5 insertions, 396 deletions
diff --git a/recipes-wam/cef/cef_git.bb b/recipes-wam/cef/cef_git.bb
index fda37d31a..67ab694d5 100644
--- a/recipes-wam/cef/cef_git.bb
+++ b/recipes-wam/cef/cef_git.bb
@@ -88,12 +88,15 @@ OUT_PATH = "${B}/out/Release_GN_${GN_TARGET_ARCH_NAME}"
DIST_PATH = "${OUT_PATH}/dist/cef-minimal_${GN_TARGET_ARCH_NAME}"
CEF_DATA_PATH = "${datadir}/cef"
-DEPENDS:append = " curl clang clang-native gperf-native gn-native dbus libcxx libcxx-native libpng libxslt jpeg compiler-rt libxkbcommon nss nss-native atk at-spi2-atk libdrm pango cairo virtual/egl qemu-native pciutils glib-2.0 pkgconfig-native pulseaudio xz-native compiler-rt compiler-rt-native"
+DEPENDS:append = " curl clang clang-native gperf-native dbus libcxx libcxx-native libpng libxslt jpeg compiler-rt libxkbcommon nss nss-native atk at-spi2-atk libdrm pango cairo virtual/egl qemu-native pciutils glib-2.0 pkgconfig-native pulseaudio xz-native compiler-rt compiler-rt-native"
do_sync[depends] += "depot-tools-wam-native:do_populate_sysroot"
do_configure[depends] += "depot-tools-wam-native:do_populate_sysroot"
do_compile[depends] += "depot-tools-wam-native:do_populate_sysroot"
+# needs to fetch a font package
+do_configure[network] = "1"
+
GN_UNBUNDLE_LIBS = " libjpeg libpng libxslt"
# gn defaults from CEF wiki, except for use_sysroot
diff --git a/recipes-wam/chromium/chromium.inc b/recipes-wam/chromium/chromium.inc
deleted file mode 100644
index d9500bcd5..000000000
--- a/recipes-wam/chromium/chromium.inc
+++ /dev/null
@@ -1,266 +0,0 @@
-# Copyright (c) 2018 LG Electronics, Inc.
-
-SUMMARY = "Chromium webruntime for webOS"
-AUTHOR = "Lokesh Kumar Goel <lokeshkumar.goel@lge.com>"
-SECTION = "webos/apps"
-LICENSE = "Apache-2.0 & BSD-3-Clause & LGPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "\
- file://src/LICENSE;md5=0fca02217a5d49a14dfe2d11837bb34d \
- file://src/third_party/blink/renderer/core/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
- file://src/third_party/blink/renderer/core/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
-"
-
-require gn-utils.inc
-
-inherit gettext qemu pythonnative pkgconfig
-
-DEPENDS = "virtual/gettext wayland wayland-native pixman freetype glib-2.0 fontconfig openssl pango cairo icu libxkbcommon libexif dbus pciutils udev libcap alsa-lib virtual/egl elfutils-native libdrm atk at-spi2-atk gperf-native gconf nss nss-native nspr nspr-native bison-native qemu-native curl"
-
-SRCREV_v8 = "1e3af71f1ff3735e8a5b639c48dfca63a7b8a647"
-
-# we don't include SRCPV in PV, so we have to manually include SRCREVs in do_fetch vardeps
-do_fetch[vardeps] += "SRCREV_v8"
-SRCREV_FORMAT = "main_v8"
-
-S = "${WORKDIR}/git"
-
-SRC_DIR = "${S}/src"
-BUILD_TYPE = "Release"
-
-B = "${WORKDIR}/build"
-OUT_DIR = "${B}/${BUILD_TYPE}"
-
-WEBRUNTIME_BUILD_TARGET = "webos:weboswebruntime"
-
-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[lttng] = "use_lttng=true,use_lttng=false,lttng-ust,lttng-tools lttng-modules babeltrace"
-
-# Chromium can use v4l2 device for hardware accelerated video decoding on such boards as Renesas R-car M3, for example.
-# In case of R-car m3, additional patches are required for gstreamer and v4l2apps.
-# See https://github.com/igel-oss/meta-browser-hwdecode/tree/igalia-chromium71.
-PACKAGECONFIG[use-linux-v4l2] = "use_v4l2_codec=true use_v4lplugin=true use_linux_v4l2_only=true"
-
-# Options to enable debug build. Add this PACKAGECONFIG to local.conf
-# to enable debug build. By default debug is completely disabled to
-# speed up build
-PACKAGECONFIG[debug] = "symbol_level=2 use_debug_fission=true,symbol_level=1"
-PACKAGECONFIG[debug-blink] = "blink_symbol_level=2 use_debug_fission=true,blink_symbol_level=1"
-
-GN_ARGS = "\
- enable_memorymanager_webapi=false\
- ffmpeg_branding=\"Chrome\"\
- host_os=\"linux\"\
- ozone_auto_platforms=false\
- proprietary_codecs=true\
- target_os=\"linux\"\
- treat_warnings_as_errors=false\
- use_x11=false\
- is_agl=true\
- use_cbe=true\
- is_chrome_cbe=false\
- is_component_build=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\
- ${PACKAGECONFIG_CONFARGS}\
-"
-
-# From Chromium's BUILDCONFIG.gn:
-# Set to enable the official build level of optimization. This has nothing
-# to do with branding, but enables an additional level of optimization above
-# release (!is_debug). This might be better expressed as a tri-state
-# (debug, release, official) but for historical reasons there are two
-# separate flags.
-# See also: https://groups.google.com/a/chromium.org/d/msg/chromium-dev/hkcb6AOX5gE/PPT1ukWoBwAJ
-GN_ARGS += "is_debug=false is_official_build=true"
-
-# is_cfi default value is true for x86-64 builds with is_official_build=true.
-# As of M63, we explicitly need to set it to false, otherwise we fail the
-# following assertion in //build/config/sanitizers/sanitizers.gni:
-# assert(!is_cfi || is_clang,
-# "is_cfi requires setting is_clang = true in 'gn args'")
-GN_ARGS += "is_cfi=false"
-
-# use_thin_lto should be also disabled for GCC
-GN_ARGS += "use_thin_lto=false"
-
-# We do not want to use Chromium's own Debian-based sysroots, it is easier to
-# just let Chromium's build system assume we are not using a sysroot at all and
-# let Yocto handle everything.
-GN_ARGS += "use_sysroot=false"
-
-# Reduce the size of the build by removing swiftshader and dawn.
-# This will effectively block support for WebGPU.
-# TODO(jdapena): reenable WebGPU support
-GN_ARGS += "use_swiftshader=false enable_swiftshader_vulkan=false use_dawn=false"
-
-# 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.
-# Note that as of M61 in some corner cases parts of the build system disable
-# the "compiler_arm_fpu" GN config, whereas -mfpu is always passed via ${CC}.
-# We might want to rework that if there are issues in the future.
-def get_compiler_flag(params, param_name, d):
- """Given a sequence of compiler arguments in |params|, returns the value of
- an option |param_name| or an empty string if the option is not present."""
- for param in params:
- if param.startswith(param_name):
- return param.split('=')[1]
- return ''
-
-ARM_FLOAT_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d)}"
-ARM_FPU = "${@get_compiler_flag(d.getVar('TUNE_CCARGS').split(), '-mfpu', d)}"
-ARM_TUNE = "${@get_compiler_flag(d.getVar('TUNE_CCARGS').split(), '-mcpu', d)}"
-ARM_VERSION:aarch64 = "8"
-ARM_VERSION:armv7a = "7"
-ARM_VERSION:armv7ve = "7"
-ARM_VERSION:armv6 = "6"
-
-# GN computes and defaults to it automatically where needed
-# forcing it from cmdline breaks build on places where it ends up
-# overriding what GN wants
-TUNE_CCARGS:remove = "-mthumb"
-
-GN_ARGS:append:arm = " \
- arm_float_abi=\"${ARM_FLOAT_ABI}\" \
- arm_fpu=\"${ARM_FPU}\" \
- arm_tune=\"${ARM_TUNE}\" \
- arm_version=${ARM_VERSION} \
-"
-# tcmalloc's atomicops-internals-arm-v6plus.h uses the "dmb" instruction that
-# is not available on (some?) ARMv6 models, which causes the build to fail.
-GN_ARGS:append:armv6 = ' use_allocator="none"'
-# The WebRTC code fails to build on ARMv6 when NEON is enabled.
-# https://bugs.chromium.org/p/webrtc/issues/detail?id=6574
-GN_ARGS:append:armv6 = ' arm_use_neon=false'
-
-# Disable glibc shims on musl
-# tcmalloc does not play well with musl as of M62 (and possibly earlier).
-# https://github.com/gperftools/gperftools/issues/693
-GN_ARGS:append:libc-musl = ' use_allocator_shim=false'
-
-# Chromium 91 build of highway with NEON is broken. Do not build.
-GN_ARGS:append:aarch64 = ' enable_jxl_decoder=false'
-
-# More options to speed up the build
-GN_ARGS += "\
- enable_nacl=false\
- disable_ftp_support=true\
- enable_print_preview=false\
- enable_basic_printing=false\
- enable_remoting=false\
- use_glib=true\
- use_gnome_keyring=false\
- use_pulseaudio=false\
-"
-
-# Doesn't build for armv[45]*
-COMPATIBLE_MACHINE = "(-)"
-COMPATIBLE_MACHINE:aarch64 = "(.*)"
-COMPATIBLE_MACHINE:armv6 = "(.*)"
-COMPATIBLE_MACHINE:armv7a = "(.*)"
-COMPATIBLE_MACHINE:armv7ve = "(.*)"
-COMPATIBLE_MACHINE:x86 = "(.*)"
-COMPATIBLE_MACHINE:x86-64 = "(.*)"
-
-#CHROMIUM_PLUGINS_PATH = "${libdir}"
-CBE_DATA_PATH = "${libdir}/cbe"
-CBE_DATA_LOCALES_PATH = "${CBE_DATA_PATH}/locales"
-
-# The text relocations are intentional -- see comments in [GF-52468]
-# TODO: check if we need INSANE_SKIP on ldflags
-INSANE_SKIP:${PN} = "textrel ldflags"
-
-
-do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
-do_compile() {
- if [ ! -f ${OUT_DIR}/build.ninja ]; then
- do_configure
- fi
-
- export PATH="${S}/depot_tools:$PATH"
- ${S}/depot_tools/ninja ${PARALLEL_MAKE} -C ${OUT_DIR} ${TARGET}
-}
-
-do_configure() {
- configure_env
-}
-
-configure_env() {
- export GYP_CHROMIUM_NO_ACTION=1
- export PATH="${S}/depot_tools:$PATH"
-
- GN_ARGS="${GN_ARGS}"
- echo GN_ARGS is ${GN_ARGS}
- echo BUILD_TARGETS are ${TARGET}
- cd ${SRC_DIR}
- gn gen ${OUT_DIR} --args="${GN_ARGS}"
-}
-
-WINDOW_SIZE ?= "1920,1080"
-
-install_webruntime() {
-
- # # Generate install webos webview files
- # ${S}/depot_tools/ninja ${PARALLEL_MAKE} -C ${OUT_DIR} webos/install/weboswebruntime
-
- # # Move installation files to D directory
- # mv ${OUT_DIR}/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}
-
- install -d ${D}${libdir}
- # install -d ${D}${libdir}/swiftshader
- install -d ${D}${includedir}/${BPN}
- install -d ${D}${CBE_DATA_PATH}
- install -d ${D}${CBE_DATA_LOCALES_PATH}
-
- # Install webos webview files
- ${S}/depot_tools/ninja ${PARALLEL_MAKE} -C ${OUT_DIR} webos/install/weboswebruntime
-
- # install -v -m 0644 ${OUT_DIR}/swiftshader/*.so ${D}${libdir}/swiftshader
-
- cp -R --no-dereference --preserve=mode,links -v ${OUT_DIR}/image/${includedir}/${BPN}/* ${D}${includedir}/${BPN}/
- install -v -m 0644 ${OUT_DIR}/image/${libdir}/*.so ${D}${libdir}
-
- install -v -m 0644 ${OUT_DIR}/image/${CBE_DATA_PATH}/icudtl.dat ${D}${CBE_DATA_PATH}
- install -v -m 0644 ${OUT_DIR}/image/${CBE_DATA_PATH}/snapshot_blob.bin ${D}${CBE_DATA_PATH}
- # app_runtime_content.pak, webos_content.pak, extensions_shell_and_test.pak
- install -v -m 0644 ${OUT_DIR}/image/${CBE_DATA_PATH}/*.pak ${D}${CBE_DATA_PATH}
-
- cp -R --no-dereference --preserve=mode,links -v ${OUT_DIR}/image/${CBE_DATA_LOCALES_PATH}/*.pak ${D}${CBE_DATA_LOCALES_PATH}
-
- chown root:root -R ${D}${libdir}
- chown root:root -R ${D}${includedir}
- chown root:root -R ${D}${CBE_DATA_LOCALES_PATH}
-}
-
-do_install() {
- install_webruntime
-}
-
-SYSROOT_DIRS:append = " ${bindir_cross}"
-
-VIRTUAL-RUNTIME_gpu-libs ?= ""
-RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_gpu-libs}"
-
-FILES:${PN} = " \
- ${libdir}/*.so \
- ${CBE_DATA_PATH}/* \
- ${libdir}/${BPN}/*.so \
-"
-
-FILES:${PN}-dev = " \
- ${includedir} \
-"
diff --git a/recipes-wam/chromium/chromium_git.bb b/recipes-wam/chromium/chromium_git.bb
deleted file mode 100644
index 18ff3e67e..000000000
--- a/recipes-wam/chromium/chromium_git.bb
+++ /dev/null
@@ -1,84 +0,0 @@
-require chromium.inc
-
-SRC_URI = "\
- git://github.com/igalia/chromium91;branch=@17.agl;protocol=https;rev=${SRCREV_chromium91};name=chromium91 \
- git://github.com/webosose/chromium-v8;branch=@chromium91;destsuffix=git/src/v8;rev=${SRCREV_v8};name=v8;protocol=https \
-"
-
-# Needed by catapult
-DEPENDS += "python-six-native python-beautifulsoup4-native python-lxml-native python-html5lib-native python-webencodings-native"
-
-SRCREV_chromium91 = "40fa88380696f62a3644efa6ae4fafda402698f7"
-SRCREV_v8 = "b958ec542dcb086f422a1216a959be38a4cc0339"
-
-CHROMIUM_VERSION = "91.0.4472.114"
-PV_BRANCH_SUFFIX = "ose17.agl"
-
-PV = "${CHROMIUM_VERSION}.${PV_BRANCH_SUFFIX}+git"
-
-GN_ARGS += "use_gtk=false"
-
-# Disable closure compile
-# Else we need HOSTTOOLS += "java"
-GN_ARGS += " \
- enable_mojom_closure_compile=false\
- enable_js_type_check=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', bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'use_lld=false use_gold=true', 'use_lld=false use_gold=false', d), 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} ${BUILD_CFLAGS}\" \
- cros_host_cxx=\"${BUILD_CXX} ${BUILD_CXXFLAGS}\" \
- 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}\" \
- gold_path=\"\" \
- v8_enable_embedded_builtins=false \
- use_v8_context_snapshot=false \
-"
-
-GN_ARGS:append = " \
- ozone_platform_wayland_external=false \
- ozone_platform_wayland=true \
- use_system_libwayland=true \
- use_system_wayland_scanner=false \
- use_system_minigbm=false \
- use_wayland_gbm=false \
-"
-
-GN_ARGS:append = " \
- is_webos=false \
- is_agl=true \
- grpc_use_static_linking=true \
-"
-
-# TODO: drop this after we migrate to ubuntu 16.04 or above
-GN_ARGS += "\
- fatal_linker_warnings=false\
-"
-
-# TODO(rzanoni) copied from original recipe to fix qemux86 build.
-# check if it can be removed in the future.
-PACKAGECONFIG:remove:qemux86 = "gstreamer umediaserver neva-media gav neva-webrtc"
-#END TODO
diff --git a/recipes-wam/chromium/gn-utils.inc b/recipes-wam/chromium/gn-utils.inc
deleted file mode 100644
index 156b56d2d..000000000
--- a/recipes-wam/chromium/gn-utils.inc
+++ /dev/null
@@ -1,32 +0,0 @@
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-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',
- }
- try:
- return translation_table[yocto_arch]
- except KeyError:
- bb.fatal('"%s" is not a supported architecture.' % yocto_arch)
diff --git a/recipes-wam/wam/wam.inc b/recipes-wam/wam/wam.inc
deleted file mode 100644
index f78fcfe53..000000000
--- a/recipes-wam/wam/wam.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-DEPENDS += " chromium "
-
-EXTRA_OECMAKE = "\
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=${prefix} \
- -DPLATFORM_NAME=${@'${DISTRO}'.upper().replace('-', '_')} \
- -DCHROMIUM_SRC_DIR=${STAGING_INCDIR}/chromium"
-
-do_install:append() {
- install -v -D -m 644 ${WORKDIR}/WebAppMgr.env ${D}${sysconfdir}/default/WebAppMgr.env
- sed -i -e 's#@WAM_EXE_DIR@#${bindir}#g' ${D}${systemd_system_unitdir}/WebAppMgr.service
-}
diff --git a/recipes-wam/wam/wam_git.bb b/recipes-wam/wam/wam_git.bb
index 570c6f8da..9f2c79ad1 100644
--- a/recipes-wam/wam/wam_git.bb
+++ b/recipes-wam/wam/wam_git.bb
@@ -45,7 +45,7 @@ do_install:append:agl-devel() {
touch ${D}${localstatedir}/agl-devel/preferences/devmode_enabled
}
-require ${@bb.utils.contains('AGL_FEATURES', 'agl-cef', 'wam-cef.inc', 'wam.inc', d)}
+require wam-cef.inc
FILES:${PN} += "${sysconfdir}/init \
${sysconfdir}/wam \