chromeos-chrome, chromeos-lacros-parallel: Automatic uprev to 106.0.5232.0.
Generated by PUpr, see https://cr-buildbucket.appspot.com/build/8806153813202136609 for job details.
BUG=None
TEST=CQ
Cq-Cl-Tag: pupr:chromeos-base/lacros-ash-atomic
Change-Id: Ia31da9782f0d74d5f714b6c4ebb624530586c19b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/3824287
Bot-Commit: ChromeOS Prod (Robot) <chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com>
Commit-Queue: ChromeOS Prod (Robot) <chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com>
diff --git a/chromeos-base/chrome-icu/chrome-icu-106.0.5232.0_rc-r1.ebuild b/chromeos-base/chrome-icu/chrome-icu-106.0.5232.0_rc-r1.ebuild
new file mode 100644
index 0000000..32749b0
--- /dev/null
+++ b/chromeos-base/chrome-icu/chrome-icu-106.0.5232.0_rc-r1.ebuild
@@ -0,0 +1,645 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This ebuild is based on "chromeos-chrome.ebuild" to compile the chrome/icu
+# package into shared libraries and install them. The essential difference is to
+# do "chrome_make icu" rather than "chrome_make chrome". Besides, some other
+# non-trivial modifications are:
+# - "chromium-source.eclass" is used to download chrome source code. Because
+# "chromeos-chrome.ebuild" and "chromium-source.eclass" download the chrome
+# source into the same location, the variables of "chromeos-chrome.ebuild"
+# are kept.
+# - "Control-flow integrity" (|is_cfi=false| and |use_cfi_cast=false|) is
+# turned off otherwise the generated .so will crash (Illegal instruction).
+# - Unrelated resource downloads (like for telemetry) are removed.
+# - Unrelated configuration (like ozone platforms) are removed.
+# - Unrelated features (like nacl) are disabled.
+# - Header folders and libraries are postfixed with "${CHROME_ICU_POSTFIX}".
+#
+# Significant changes from "chromeos-chrome.ebuild" are highlighted by "[Mod]".
+#
+# The GN output folder is named as "out_icu_${BOARD}".
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6..9} )
+inherit binutils-funcs chromium-source cros-constants cros-sanitizers flag-o-matic multilib toolchain-funcs python-any-r1 multiprocessing
+
+DESCRIPTION="The ICU library copied from chrome/third_party"
+HOMEPAGE="https://cs.chromium.org/chromium/src/third_party/icu/"
+
+LICENSE="icu-58"
+
+SLOT="0/${PVR}"
+KEYWORDS="*"
+
+# [Mod] Most of non-related IUSE flags are removed.
+IUSE="
+ asan
+ chrome_internal
+ component_build
+ cups
+ +libcxx
+ msan
+ neon
+ +runhooks
+ thinlto
+ ubsan
+ verbose
+ xkbcommon
+ "
+
+# [Mod] clear REQUIRED_USE.
+REQUIRED_USE=""
+
+# [Mod] Ozone platform variables are removed.
+
+# The gclient hooks that run in src_prepare hit the network.
+# https://crbug.com/731905
+RESTRICT="network-sandbox mirror"
+
+# Portage version without optional portage suffix.
+CHROME_VERSION="${PV/_*/}"
+
+# chrome destination directory
+CHROME_DIR=/opt/google/chrome
+
+# For compilation
+BUILDTYPE="${BUILDTYPE:-Release}"
+BOARD="${BOARD:-${SYSROOT##/build/}}"
+# [Mod] GN output dir is named as "out_icu_${BOARD}".
+BUILD_OUT="${BUILD_OUT:-out_icu_${BOARD}}"
+
+# [Mod] Change from "c" to avoid potential conflict with chromeos-chrome.ebuild.
+BUILD_OUT_SYM="c_icu"
+
+# [Mod] To differentiate with the standard ICU, we postfix the include headers
+# folder and library names by "chrome". (see crbug.com/1059133 and b/151439301)
+CHROME_ICU_POSTFIX="-chrome"
+
+# [Mod] Order file and AFDO file variables/functions declared here are removed.
+
+# [Mod] chrome/icu depends on nothing. Blocking the canonical icu package can
+# let us notice the potential repetitions.
+# [Mod] Old Chrome ebuilds installed icudtl.dat.
+# Add `xkbcommon` related libraries to make xkbcommon handling identical with
+# chromeos-chrome. This will make it more likely to catch potential xkbcommon
+# related chromeos-icu.ebuild failures by testing chromeos-chrome.ebuild.
+RDEPEND="
+ !dev-libs/icu
+ !<chromeos-base/chromeos-chrome-83.0.4098.4
+ xkbcommon? (
+ x11-libs/libxkbcommon
+ x11-misc/xkeyboard-config
+ )
+"
+DEPEND="
+ net-print/cups
+ x11-libs/libdrm
+"
+
+# [Mod] NaCl utilities are removed.
+
+usetf() { usex $1 true false ; }
+
+set_build_args() {
+ # [Mod] 1. Add a new arg "icu_disable_thin_archive=true".
+ # 2. Set the values according to IUSE default value but disable
+ # unnecessary feature
+ # 3. Set "is_cfi=false".
+ BUILD_ARGS=(
+ "is_chromeos_device=true"
+ "icu_disable_thin_archive=true"
+
+ # is_official_build sometimes implies extra optimizations (e.g. it will allow
+ # ThinLTO to optimize more aggressively, if ThinLTO is enabled). Please note
+ # that, despite the name, it should be usable by external users.
+ #
+ # Sanitizers don't like official builds.
+ "is_official_build=$(use_sanitizers false true)"
+
+ "is_debug=false"
+ "${EXTRA_GN_ARGS}"
+ "use_ozone=true"
+ "use_evdev_gestures=false"
+ # Use the Chrome OS toolchain and not the one bundled with Chromium.
+ "linux_use_bundled_binutils=false"
+ "use_debug_fission=false"
+ "enable_remoting=false"
+ "enable_nacl=false"
+ "enable_nacl=false"
+ "icu_use_data_file=true"
+ # Add this to make xkbcommon handling identical with chromeos-chrome.
+ # This will make it more likely to catch potential xkbcommon related
+ # chromeos-icu.ebuild failures by testing chromeos-chrome.ebuild
+ "use_xkbcommon=$(usetf xkbcommon)"
+ # use_system_minigbm is set below.
+ # HarfBuzz and FreeType need to be built together in a specific way
+ # to get FreeType autohinting to work properly. Chromium bundles
+ # FreeType and HarfBuzz to meet that need.
+ # See crbug.com/694137 .
+ "use_system_harfbuzz=false"
+ "use_system_freetype=false"
+ "use_system_libsync=false"
+ "use_cups=$(usetf cups)"
+ "use_bundled_fontconfig=false"
+
+ # Clang features.
+ "is_asan=$(usetf asan)"
+ "is_msan=$(usetf msan)"
+ "is_ubsan=$(usetf ubsan)"
+ "use_thin_lto=$(usetf thinlto)"
+ "is_cfi=false"
+ "use_cfi_cast=false"
+ "use_cras=false"
+ )
+
+ # BUILD_STRING_ARGS needs appropriate quoting. So, we keep them separate and
+ # add them to BUILD_ARGS at the end.
+ BUILD_STRING_ARGS=(
+ "target_sysroot=${SYSROOT}"
+ "system_libdir=$(get_libdir)"
+ "pkg_config=$(tc-getPKG_CONFIG)"
+ "target_os=chromeos"
+ "host_pkg_config=$(tc-getBUILD_PKG_CONFIG)"
+ )
+
+ # [Mod] Ozone platform configrations are removed.
+
+ # Set proper build args for the arch
+ case "${ARCH}" in
+ x86)
+ BUILD_STRING_ARGS+=( "target_cpu=x86" )
+ ;;
+ arm)
+ BUILD_ARGS+=(
+ "arm_use_neon=$(usetf neon)"
+ # To workaround the 4GB debug limit. crbug.com/792999.
+ "blink_symbol_level=1"
+ )
+ BUILD_STRING_ARGS+=(
+ "target_cpu=arm"
+ "arm_float_abi=hard"
+ )
+ local arm_arch=$(get-flag march)
+ if [[ -n "${arm_arch}" ]]; then
+ BUILD_STRING_ARGS+=( "arm_arch=${arm_arch}" )
+ fi
+ ;;
+ arm64)
+ BUILD_STRING_ARGS+=(
+ "target_cpu=arm64"
+ )
+ local arm_arch=$(get-flag march)
+ if [[ -n "${arm_arch}" ]]; then
+ BUILD_STRING_ARGS+=( "arm_arch=${arm_arch}" )
+ fi
+ ;;
+ amd64)
+ BUILD_STRING_ARGS+=( "target_cpu=x64" )
+ ;;
+ *)
+ die "Unsupported architecture: ${ARCH}"
+ ;;
+ esac
+
+ # [Mod] chrome_media configurations are removed.
+ if use chrome_internal; then
+ # Adding chrome branding specific variables.
+ BUILD_ARGS+=( "is_chrome_branded=true" )
+ # This test can only be build from internal sources.
+ BUILD_ARGS+=( "internal_gles2_conform_tests=true" )
+ export CHROMIUM_BUILD='_google_Chrome'
+ export OFFICIAL_BUILD='1'
+ export CHROME_BUILD_TYPE='_official'
+ fi
+
+ BUILD_ARGS+=(
+ "treat_warnings_as_errors=false"
+ )
+
+ if use component_build; then
+ BUILD_ARGS+=( "is_component_build=true" )
+ fi
+
+ # [Mod] goma is disabled.
+ BUILD_ARGS+=( "use_goma=false" )
+
+ # [Mod] chrome_debug and debug_fission configurations are removed.
+}
+
+# [Mod] Main content of unpack_chrome() is replaced by the unpack function in
+# chromium-source.eclass.
+unpack_chrome() {
+ # Add depot_tools to PATH, local chroot builds fail otherwise.
+ export PATH=${PATH}:${DEPOT_TOOLS}
+
+ chromium-source_src_unpack
+}
+
+decide_chrome_origin() {
+ if [[ "${PV}" == "9999" ]]; then
+ # LOCAL_SOURCE is the default for cros_workon
+ # Warn the user if CHROME_ORIGIN is already set
+ if [[ -n "${CHROME_ORIGIN}" && "${CHROME_ORIGIN}" != LOCAL_SOURCE ]]; then
+ ewarn "CHROME_ORIGIN is already set to ${CHROME_ORIGIN}."
+ ewarn "This will prevent you from building from your local checkout."
+ ewarn "Please run 'unset CHROME_ORIGIN' to reset Chrome"
+ ewarn "to the default source location."
+ fi
+ : "${CHROME_ORIGIN:=LOCAL_SOURCE}"
+ else
+ # By default, pull from server
+ : "${CHROME_ORIGIN:=SERVER_SOURCE}"
+ fi
+}
+
+sandboxless_ensure_directory() {
+ local dir
+ for dir in "$@"; do
+ if [[ ! -d "${dir}" ]] ; then
+ # We need root access to create these directories, so we need to
+ # use sudo. This implicitly disables the sandbox.
+ sudo mkdir -p "${dir}" || die
+ sudo chown "${PORTAGE_USERNAME}:portage" "${dir}" || die
+ sudo chmod 0755 "${dir}" || die
+ fi
+ done
+}
+
+src_unpack() {
+ tc-export CC CXX
+ local WHOAMI=$(whoami)
+
+ CHROME_SRC="chrome-src"
+ if use chrome_internal; then
+ CHROME_SRC+="-internal"
+ fi
+
+ # CHROME_CACHE_DIR is used for storing output artifacts, and is always a
+ # regular directory inside the chroot (i.e. it's never mounted in, so it's
+ # always safe to use cp -al for these artifacts).
+ : "${CHROME_CACHE_DIR:="/var/cache/chromeos-chrome/${CHROME_SRC}"}"
+ addwrite "${CHROME_CACHE_DIR}"
+
+ # CHROME_DISTDIR is used for storing the source code, if any source code
+ # needs to be unpacked at build time (e.g. in the SERVER_SOURCE scenario.)
+ # It will be mounted into the chroot, so it is never safe to use cp -al
+ # for these files.
+ : "${CHROME_DISTDIR:="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}/${CHROME_SRC}"}"
+ addwrite "${CHROME_DISTDIR}"
+
+ # Create storage directories.
+ sandboxless_ensure_directory "${CHROME_DISTDIR}" "${CHROME_CACHE_DIR}"
+
+ # [Mod] Calls of cros-credentials_setup is removed.
+
+ decide_chrome_origin
+
+ # [Mod] LOCAL_BINARY is not supported because chromium-source.eclass does not
+ # support it.
+ case "${CHROME_ORIGIN}" in
+ LOCAL_SOURCE|SERVER_SOURCE)
+ einfo "CHROME_ORIGIN VALUE is ${CHROME_ORIGIN}"
+ ;;
+ *)
+ die "CHROME_ORIGIN not one of LOCAL_SOURCE, SERVER_SOURCE"
+ ;;
+ esac
+
+ # Prepare and set CHROME_ROOT based on CHROME_ORIGIN.
+ # CHROME_ROOT is the location where the source code is used for compilation.
+ # If we're in SERVER_SOURCE mode, CHROME_ROOT is CHROME_DISTDIR. In LOCAL_SOURCE
+ # mode, this directory may be set manually to any directory. It may be mounted
+ # into the chroot, so it is not safe to use cp -al for these files.
+ # These are set here because $(whoami) returns the proper user here,
+ # but 'root' at the root level of the file
+ case "${CHROME_ORIGIN}" in
+ (SERVER_SOURCE)
+ elog "Using CHROME_VERSION = ${CHROME_VERSION}"
+ if [[ ${WHOAMI} == "chrome-bot" ]]; then
+ # TODO: Should add a sanity check that the version checked out is
+ # what we actually want. Not sure how to do that though.
+ elog "Skipping syncing as cbuildbot ran SyncChrome for us."
+ else
+ unpack_chrome
+ fi
+
+ elog "set the chrome source root to ${CHROME_DISTDIR}"
+ elog "From this point onwards there is no difference between \
+ SERVER_SOURCE and LOCAL_SOURCE, since the fetch is done"
+ CHROME_ROOT=${CHROME_DISTDIR}
+ ;;
+ (LOCAL_SOURCE)
+ : "${CHROME_ROOT:=/home/${WHOAMI}/chrome_root}"
+ if [[ ! -d "${CHROME_ROOT}/src" ]]; then
+ die "${CHROME_ROOT} does not contain a valid chromium checkout!"
+ fi
+ addwrite "${CHROME_ROOT}"
+ ;;
+ esac
+
+ # [Mod] Always call this because the case CHROME_ORIGIN=LOCAL_BINARY is
+ # excluded.
+ set_build_args
+
+ ln -sf "${CHROME_ROOT}" "${WORKDIR}/${P}"
+
+ # [Mod] Use flags internal_gles_conform, afdo_use, afdo_verify,
+ # orderfile_verify and orderfile_use are all disabled.
+ BUILD_STRING_ARGS+=( "chrome_orderfile_path=" )
+}
+
+# [Mod] add_api_keys() is removed because we do not need to access Google
+# services.
+
+# [Mod] src_prepare() is simplied because 1) we do not need to access Google
+# services; 2) we exclude the case CHROME_ORIGIN=LOCAL_BINARY and 3) we do
+# not need patches.
+src_prepare() {
+ # Must call eapply_user in EAPI 7, but this function is a no-op here.
+ eapply_user
+
+ cd "${CHROME_ROOT}/src" || die "Cannot chdir to ${CHROME_ROOT}"
+ mkdir -p "${CHROME_CACHE_DIR}/src/${BUILD_OUT}"
+ if [[ -n "${BUILD_OUT_SYM}" ]]; then
+ rm -rf "${BUILD_OUT_SYM}" || die "Could not remove symlink"
+ ln -sfT "${CHROME_CACHE_DIR}/src/${BUILD_OUT}" "${BUILD_OUT_SYM}" ||
+ die "Could not create symlink for output directory"
+ fi
+}
+
+# [Mod] setup_test_lists() is removed.
+
+# Handle all CFLAGS/CXXFLAGS/etc... munging here.
+setup_compile_flags() {
+ # Chrome controls its own optimization settings, so this would be a nop
+ # if we were to run it. Leave it here anyway as a grep-friendly marker.
+ # cros_optimize_package_for_speed
+
+ # The chrome makefiles specify -O and -g flags already, so remove the
+ # portage flags.
+ filter-flags -g -O*
+
+ # Remove unsupported arm64 linker flag on arm32 builds.
+ # https://crbug.com/889079
+ use arm && filter-flags "-Wl,--fix-cortex-a53-843419"
+
+ # There are some flags we want to only use in the ebuild.
+ # The rest will be exported to the simple chrome workflow.
+ EBUILD_CFLAGS=()
+ EBUILD_CXXFLAGS=()
+ EBUILD_LDFLAGS=()
+
+ if use thinlto; then
+ # if using thinlto, we need to pass the equivalent of
+ # -fdebug-types-section to the backend, to prevent out-of-range
+ # relocations (see
+ # https://bugs.chromium.org/p/chromium/issues/detail?id=1032159).
+ append-ldflags -Wl,-mllvm
+ append-ldflags -Wl,-generate-type-units
+ else
+ # Non-ThinLTO builds with symbol_level=2 may have out-of-range
+ # relocations, too: crbug.com/1050819.
+ append-flags -fdebug-types-section
+ fi
+
+ # Enable std::vector []-operator bounds checking.
+ append-cxxflags -D__google_stl_debug_vector=1
+
+ # Chrome and Chrome OS versions of the compiler may not be in
+ # sync. So, don't complain if Chrome uses a diagnostic
+ # option that is not yet implemented in the compiler version used
+ # by Chrome OS.
+ # Turns out this is only really supported by Clang. See crosbug.com/615466
+ # Add "-faddrsig" flag required to efficiently support "--icf=all".
+ append-flags -faddrsig
+ append-flags -Wno-unknown-warning-option
+ export CXXFLAGS_host+=" -Wno-unknown-warning-option"
+ export CFLAGS_host+=" -Wno-unknown-warning-option"
+ if use libcxx; then
+ append-cxxflags "-stdlib=libc++"
+ append-ldflags "-stdlib=libc++"
+ fi
+
+ # Workaround: Disable fatal linker warnings on arm64/lld.
+ # https://crbug.com/913071
+ # [mod] vtable_verify is disabled.
+ use arm64 && append-ldflags "-Wl,--no-fatal-warnings"
+
+ local flags
+ einfo "Building with the compiler settings:"
+ for flags in {C,CXX,CPP,LD}FLAGS; do
+ einfo " ${flags} = ${!flags}"
+ done
+}
+
+src_configure() {
+ tc-export CXX CC AR AS NM RANLIB STRIP
+ export CC_host=$(tc-getBUILD_CC)
+ export CXX_host=$(tc-getBUILD_CXX)
+ export NM_host=$(tc-getBUILD_NM)
+ export READELF="llvm-readelf"
+ export READELF_host="llvm-readelf"
+
+ # Use C++ compiler as the linker driver.
+ export LD="${CXX}"
+ export LD_host=${CXX_host}
+
+ # We need below change when USE="thinlto" is set. We set this globally
+ # so that users can turn on the "use_thin_lto" in the simplechrome
+ # flow more easily.
+ # use nm from llvm, https://crbug.com/917193
+ export NM="llvm-nm"
+ export NM_host="llvm-nm"
+ export AR="llvm-ar"
+ # USE=thinlto affects host build, we need to set host AR to
+ # llvm-ar to make sure host package builds with thinlto.
+ # crbug.com/731335
+ export AR_host="llvm-ar"
+ export RANLIB="llvm-ranlib"
+
+ # Set binutils path for goma.
+ CC_host+=" -B$(get_binutils_path "${LD_host}")"
+ CXX_host+=" -B$(get_binutils_path "${LD_host}")"
+
+ setup_compile_flags
+
+ # We might set BOTO_CONFIG in the builder environment in case the
+ # existing file needs modifications (e.g. for working with older
+ # branches). So don't overwrite it if it's already set.
+ # See https://crbug.com/847676 for details.
+ export BOTO_CONFIG="${BOTO_CONFIG:-/home/$(whoami)/.boto}"
+ export PATH=${PATH}:${DEPOT_TOOLS}
+
+ export DEPOT_TOOLS_GSUTIL_BIN_DIR="${CHROME_CACHE_DIR}/gsutil_bin"
+
+ # TODO(rcui): crosbug.com/20435. Investigate removal of runhooks
+ # useflag when chrome build switches to Ninja inside the chroot.
+ if use runhooks; then
+ local cmd=( "${EGCLIENT}" runhooks --force )
+ echo "${cmd[@]}"
+ CFLAGS="${CFLAGS} ${EBUILD_CFLAGS[*]}" \
+ CXXFLAGS="${CXXFLAGS} ${EBUILD_CXXFLAGS[*]}" \
+ LDFLAGS="${LDFLAGS} ${EBUILD_LDFLAGS[*]}" \
+ "${cmd[@]}" || die
+ fi
+
+ # [Mod] Unrelated V8 configurations are removed.
+ BUILD_STRING_ARGS+=(
+ "cros_target_ar=${AR}"
+ "cros_target_cc=${CC}"
+ "cros_target_cxx=${CXX}"
+ "host_toolchain=//build/toolchain/cros:host"
+ "custom_toolchain=//build/toolchain/cros:target"
+ "cros_target_ld=${LD}"
+ "cros_target_nm=${NM}"
+ "cros_target_readelf=${READELF}"
+ "cros_target_extra_cflags=${CFLAGS} ${EBUILD_CFLAGS[*]}"
+ "cros_target_extra_cppflags=${CPPFLAGS}"
+ "cros_target_extra_cxxflags=${CXXFLAGS} ${EBUILD_CXXFLAGS[*]}"
+ "cros_target_extra_ldflags=${LDFLAGS} ${EBUILD_LDFLAGS[*]}"
+ "cros_host_cc=${CC_host}"
+ "cros_host_cxx=${CXX_host}"
+ "cros_host_ar=${AR_host}"
+ "cros_host_ld=${LD_host}"
+ "cros_host_nm=${NM_host}"
+ "cros_host_readelf=${READELF_host}"
+ "cros_host_extra_cflags=${CFLAGS_host}"
+ "cros_host_extra_cxxflags=${CXXFLAGS_host}"
+ "cros_host_extra_cppflags=${CPPFLAGS_host}"
+ "cros_host_extra_ldflags=${LDFLAGS_host}"
+ )
+
+ local arg
+ for arg in "${BUILD_STRING_ARGS[@]}"; do
+ BUILD_ARGS+=("${arg%%=*}=\"${arg#*=}\"")
+ done
+ export GN_ARGS="${BUILD_ARGS[*]}"
+ einfo "GN_ARGS = ${GN_ARGS}"
+ local gn=(
+ "${CHROME_ROOT}/src/buildtools/linux64/gn" gen
+ "${CHROME_ROOT}/src/${BUILD_OUT_SYM}/${BUILDTYPE}"
+ --args="${GN_ARGS}" --root="${CHROME_ROOT}/src"
+ --root-target="//third_party/icu"
+ )
+ echo "${gn[@]}"
+ "${gn[@]}" || die
+
+ # [Mod] setup_test_lists and clang_tidy are removed.
+}
+
+chrome_make() {
+ local build_dir="${BUILD_OUT_SYM}/${BUILDTYPE}"
+
+ # If ThinLTO is enabled, we may have a cache from a previous link. Due
+ # to fears about lack of reproducibility, we don't allow cache reuse
+ # across rebuilds. The cache is still useful for artifacts shared
+ # between multiple links done by this build (e.g. tests).
+ use thinlto && rm -rf "${build_dir}/thinlto-cache"
+
+ local command=(
+ "${ENINJA}"
+ -j"$(makeopts_jobs)"
+ -C "${build_dir}"
+ $(usex verbose -v "")
+ "$@"
+ )
+
+ PATH=${PATH}:${DEPOT_TOOLS} "${command[@]}"
+ local ret=$?
+ [[ "${ret}" -eq 0 ]] || die
+}
+
+# [Mod] src_compile() is simplied because 1) the case CHROME_LOCAL=LOCAL_BINARY
+# is excluded. 2) we do not need nacl or tests.
+src_compile() {
+ cd "${CHROME_ROOT}"/src || die "Cannot chdir to ${CHROME_ROOT}/src"
+
+ chrome_make "icu"
+}
+
+# [Mod] src_install() is greatly simplied and totally new.
+src_install() {
+ local build_dir="src/${BUILD_OUT_SYM}/${BUILDTYPE}"
+ local icu_lib_dir="${build_dir}/obj/third_party/icu/"
+ mv "${icu_lib_dir}/libicui18n.a" "${icu_lib_dir}/libicui18n${CHROME_ICU_POSTFIX}.a"
+ mv "${icu_lib_dir}/libicuuc.a" "${icu_lib_dir}/libicuuc${CHROME_ICU_POSTFIX}.a"
+ dolib.a "${icu_lib_dir}/libicui18n${CHROME_ICU_POSTFIX}.a"
+ dolib.a "${icu_lib_dir}/libicuuc${CHROME_ICU_POSTFIX}.a"
+ # Install to chrome folder to make chrome work.
+ insinto "${CHROME_DIR}"
+ doins "${build_dir}/icudtl.dat"
+ doins "${build_dir}/icudtl.dat.hash"
+
+ # Install icu header to /usr/include/icu${CHROME_ICU_POSTFIX}/.
+ local icu_headers=(
+ "common/unicode/appendable.h"
+ "common/unicode/brkiter.h"
+ "common/unicode/bytestream.h"
+ "common/unicode/char16ptr.h"
+ "common/unicode/chariter.h"
+ "common/unicode/errorcode.h"
+ "common/unicode/localpointer.h"
+ "common/unicode/locid.h"
+ "common/unicode/parseerr.h"
+ "common/unicode/platform.h"
+ "common/unicode/ptypes.h"
+ "common/unicode/putil.h"
+ "common/unicode/rep.h"
+ "common/unicode/schriter.h"
+ "common/unicode/std_string.h"
+ "common/unicode/strenum.h"
+ "common/unicode/stringoptions.h"
+ "common/unicode/stringpiece.h"
+ "common/unicode/ubrk.h"
+ "common/unicode/uchar.h"
+ "common/unicode/uchriter.h"
+ "common/unicode/uclean.h"
+ "common/unicode/ucnv.h"
+ "common/unicode/ucnv_err.h"
+ "common/unicode/uconfig.h"
+ "common/unicode/ucpmap.h"
+ "common/unicode/ucurr.h"
+ "common/unicode/udata.h"
+ "common/unicode/udisplaycontext.h"
+ "common/unicode/uenum.h"
+ "common/unicode/uloc.h"
+ "common/unicode/umachine.h"
+ "common/unicode/umisc.h"
+ "common/unicode/unifilt.h"
+ "common/unicode/unifunct.h"
+ "common/unicode/unimatch.h"
+ "common/unicode/uniset.h"
+ "common/unicode/unistr.h"
+ "common/unicode/uobject.h"
+ "common/unicode/urename.h"
+ "common/unicode/ures.h"
+ "common/unicode/uscript.h"
+ "common/unicode/uset.h"
+ "common/unicode/utext.h"
+ "common/unicode/utf.h"
+ "common/unicode/utf16.h"
+ "common/unicode/utf8.h"
+ "common/unicode/utf_old.h"
+ "common/unicode/utypes.h"
+ "common/unicode/uvernum.h"
+ "common/unicode/uversion.h"
+ "i18n/unicode/calendar.h"
+ "i18n/unicode/gregocal.h"
+ "i18n/unicode/regex.h"
+ "i18n/unicode/timezone.h"
+ "i18n/unicode/ucal.h"
+ "i18n/unicode/ucsdet.h"
+ "i18n/unicode/ufieldpositer.h"
+ "i18n/unicode/uformattable.h"
+ "i18n/unicode/unum.h"
+ "i18n/unicode/uregex.h"
+ )
+ local f
+ for f in "${icu_headers[@]}"; do
+ insinto "/usr/include/icu${CHROME_ICU_POSTFIX}/${f%/*}"
+ doins "${CHROME_ROOT}/src/third_party/icu/source/${f}"
+ done
+}
diff --git a/chromeos-base/chromeos-chrome/chromeos-chrome-106.0.5229.0_rc-r2.ebuild b/chromeos-base/chromeos-chrome/chromeos-chrome-106.0.5232.0_rc-r1.ebuild
similarity index 100%
rename from chromeos-base/chromeos-chrome/chromeos-chrome-106.0.5229.0_rc-r2.ebuild
rename to chromeos-base/chromeos-chrome/chromeos-chrome-106.0.5232.0_rc-r1.ebuild
diff --git a/chromeos-base/chromeos-lacros/Manifest b/chromeos-base/chromeos-lacros/Manifest
index f9f5f0e..2ad4894 100644
--- a/chromeos-base/chromeos-lacros/Manifest
+++ b/chromeos-base/chromeos-lacros/Manifest
@@ -1,6 +1,6 @@
-DIST chromeos-lacros-amd64-metadata-106.0.5229.0 78 BLAKE2B 1877c4355ac27bcb035c061aaabcaf74af1a627d3cbf3fc9f6357a7b4c4547c6b35b1eef6d1922eb0a56fba3690c7323ab6f37dea9c6b4a76bb8f8f3fd69a350 SHA512 3622c4d96dea7a350867bbde653b24a201d0bef3b5e00cedabf18d8bb0f846d2de01258f78508f61ab56d2a663404d4bfd35bae704cc889d99d54d61f8aa58dc
-DIST chromeos-lacros-amd64-squash-106.0.5229.0 131485696 BLAKE2B 6e37183b6ebf02e64a0b9d781e68e8fb37b563269462303ce9a1e156647e6f176b034ef0bb2abe6bc8183209b262dc4c73d283b467647604b73221cb769c9c15 SHA512 97f59580427764c648042f76d4d3559232adf55387ff3c334b202e351030fee6f1b4ceb212ebdce7f355377c328872b41bf1f6f6e8a1355cf1f769e74796a01d
-DIST chromeos-lacros-arm-metadata-106.0.5229.0 78 BLAKE2B 1877c4355ac27bcb035c061aaabcaf74af1a627d3cbf3fc9f6357a7b4c4547c6b35b1eef6d1922eb0a56fba3690c7323ab6f37dea9c6b4a76bb8f8f3fd69a350 SHA512 3622c4d96dea7a350867bbde653b24a201d0bef3b5e00cedabf18d8bb0f846d2de01258f78508f61ab56d2a663404d4bfd35bae704cc889d99d54d61f8aa58dc
-DIST chromeos-lacros-arm-squash-106.0.5229.0 120868864 BLAKE2B 7cdfebfa2b03d083d80d5a28ea0cf78ab67a6790ef6ea75f0d5ecdb59c01c9c18837450bfcd8b7adb7c15d009850e7ee314b65ea5d217819aba3709b7fbb6fe9 SHA512 6c68b0ec1ff64c49481cd78ef187029f92fdcec2e3512b64d11dd6fca77845afa59eb9b9fd68fc5d6ecb93b776b23d340afefb47003f57a5b695fcd4b57d79e7
-DIST chromeos-lacros-arm64-metadata-106.0.5229.0 78 BLAKE2B 1877c4355ac27bcb035c061aaabcaf74af1a627d3cbf3fc9f6357a7b4c4547c6b35b1eef6d1922eb0a56fba3690c7323ab6f37dea9c6b4a76bb8f8f3fd69a350 SHA512 3622c4d96dea7a350867bbde653b24a201d0bef3b5e00cedabf18d8bb0f846d2de01258f78508f61ab56d2a663404d4bfd35bae704cc889d99d54d61f8aa58dc
-DIST chromeos-lacros-arm64-squash-106.0.5229.0 121053184 BLAKE2B 52226445c4e46e8aca944e1831550912d516feb83f2a51e06ca5b8a520f6593d7d273a7f41b2bb43ae969dd407dc0bed133a441960b04be1ba7f660075ac4ea3 SHA512 26bb5e75e3b98bc6d313b9fd447c5a2a03bb0378c8c1c814cf510e68ee9253a9ed6167f28198cefbd2b10321bdb838de557fe606cd2da51b82665b4519db3a45
+DIST chromeos-lacros-amd64-metadata-106.0.5232.0 78 BLAKE2B baeea8a4d0b3a80c19223d5159280c3838814416bfdd78d4ea850ff96ad4f2926db57e325487ad7c82f22a3e7d11485b9270080f9052cbec8c683fc48089e3b3 SHA512 11938e0a232d8df8e4051bee66ffddc4a447413d9a88fcc008f6953fcd20c42a0deb9cb6cf0e3dcbae8dd017915f354a82f1b93f62b1eb3b37f2f69fca305e98
+DIST chromeos-lacros-amd64-squash-106.0.5232.0 131596288 BLAKE2B e0d289f34bea6ffb77243cabd1e543cde13e065a09b53bb6e1868d18790ab3f1decb757924837d6bbb40e16ef0c5f51b9527859472f65db1d0fd7e509dff6c24 SHA512 833852cd76cb50ed202fff65ac5a13fec41932e3f7360b00ee5d006f6bb3685a98e7d9ca21a841e253458d99f4bbb50ea888329d9dedc72efcf9a92efca993ee
+DIST chromeos-lacros-arm-metadata-106.0.5232.0 78 BLAKE2B baeea8a4d0b3a80c19223d5159280c3838814416bfdd78d4ea850ff96ad4f2926db57e325487ad7c82f22a3e7d11485b9270080f9052cbec8c683fc48089e3b3 SHA512 11938e0a232d8df8e4051bee66ffddc4a447413d9a88fcc008f6953fcd20c42a0deb9cb6cf0e3dcbae8dd017915f354a82f1b93f62b1eb3b37f2f69fca305e98
+DIST chromeos-lacros-arm-squash-106.0.5232.0 120979456 BLAKE2B 4479813d2f759f66e2b418c8ddd02ea6400801a5b960494d79ecce504266297e8717542429ce50a9ddfa94ece264f4f1a415c36e9d7f2d188481e0198dc575a4 SHA512 690f254007ac85d7f7382b6e17a7c6139e1a41dd2085e126b440b6bccc7e366250e001ef2d947a028319353ca5abc219ea0e8979e36af74cb1609ea11b121a29
+DIST chromeos-lacros-arm64-metadata-106.0.5232.0 78 BLAKE2B baeea8a4d0b3a80c19223d5159280c3838814416bfdd78d4ea850ff96ad4f2926db57e325487ad7c82f22a3e7d11485b9270080f9052cbec8c683fc48089e3b3 SHA512 11938e0a232d8df8e4051bee66ffddc4a447413d9a88fcc008f6953fcd20c42a0deb9cb6cf0e3dcbae8dd017915f354a82f1b93f62b1eb3b37f2f69fca305e98
+DIST chromeos-lacros-arm64-squash-106.0.5232.0 121151488 BLAKE2B f64b0b558ca08870b19af514f3e8b9643e4cc85f0829b8937e02f72ef57a27f5dfa155e3f9fd55583392608425125a0e4a95334f49af2b654e477756d080c2a9 SHA512 3f75135fb89c01f214d9d0c45d37de735f0b98b69383d853a5000f13b72eb3d35dd4f19adb7c6331df001d45a2db1281aa5721e818fa2eab8ed54440fb1f2d77
diff --git a/chromeos-base/chromeos-lacros/chromeos-lacros-106.0.5229.0-r1.ebuild b/chromeos-base/chromeos-lacros/chromeos-lacros-106.0.5232.0-r1.ebuild
similarity index 100%
rename from chromeos-base/chromeos-lacros/chromeos-lacros-106.0.5229.0-r1.ebuild
rename to chromeos-base/chromeos-lacros/chromeos-lacros-106.0.5232.0-r1.ebuild
diff --git a/chromeos-base/chromium-source/chromium-source-106.0.5229.0_rc-r1.ebuild b/chromeos-base/chromium-source/chromium-source-106.0.5232.0_rc-r1.ebuild
similarity index 100%
rename from chromeos-base/chromium-source/chromium-source-106.0.5229.0_rc-r1.ebuild
rename to chromeos-base/chromium-source/chromium-source-106.0.5232.0_rc-r1.ebuild