cros_update_firmware: Update for new standardized package names
With chromeos-config virtuals removed from the tree, there is now only
four possible bsp package names:
- chromeos-base/chromeos-config-bsp
- chromeos-base/chromeos-config-bsp-private
- chromeos-base/chromeos-config-bsp-baseboard
- chromeos-base/chromeos-config-bsp-baseboard-private
This significantly simplifies the previous detection logic -- we
simply need to `equery which` for each package and append to an
array of packages to workon/emerge.
BUG=b:197038156
TEST=./cros_update_firmware -b strongbad
Change-Id: If323cfeed338b9508247b6779cc09105da62a299
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/3166682
Tested-by: Jack Rosenthal <jrosenth@chromium.org>
Auto-Submit: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Bob Moragues <moragues@chromium.org>
Reviewed-by: Bob Moragues <moragues@chromium.org>
diff --git a/contrib/cros_update_firmware b/contrib/cros_update_firmware
index 60f38d4..633a890 100755
--- a/contrib/cros_update_firmware
+++ b/contrib/cros_update_firmware
@@ -65,9 +65,10 @@
update_firmware() {
local board="$1"
local project="$2"
- local base ebuild srcuris cfg_bsp_pkg cfg_bsp_baseboard_pkg
- local current_workon_pkg_list start_pkg result i quiet
- [[ "$3" == "${FLAGS_TRUE}" ]] && quiet="--quiet-build"
+ local base ebuild srcuris
+ local current_workon_pkg_list start_pkg result i
+ local emerge_flags=()
+ [[ "$3" == "${FLAGS_TRUE}" ]] && emerge_flags+=("--quiet-build")
local append_srcuris="$4"
set -e
@@ -75,18 +76,17 @@
# query the current working package
mapfile -t current_workon_pkg_list < <(cros workon --board="${board}" list)
- # check if chromeos-config-bsp is a virtual package
- cfg_bsp_pkg="chromeos-config-bsp"
- equery-"${board}" w chromeos-base/chromeos-config-bsp > /dev/null 2>&1 \
- || cfg_bsp_pkg="chromeos-config-bsp-${board}-private"
- # check if chromeos-config-bsp-baseboard is in use
- cfg_bsp_baseboard_pkg="chromeos-config-bsp-baseboard"
- equery-"${board}" w chromeos-base/chromeos-config-bsp-baseboard \
- > /dev/null 2>&1 || cfg_bsp_baseboard_pkg=
+ local config_packages=(chromeos-base/chromeos-config)
+ local suffix
+ for suffix in "" -private -baseboard -baseboard-private; do
+ local pkg="chromeos-base/chromeos-config-bsp${suffix}"
+ if equery-"${board}" which "${pkg}" >/dev/null 2>&1; then
+ config_packages+=("${pkg}")
+ fi
+ done
- start_pkg=("${cfg_bsp_pkg}")
+ start_pkg=("${config_packages[@]}")
start_pkg+=("chromeos-firmware-${board}")
- start_pkg+=("${cfg_bsp_baseboard_pkg}")
for i in "${!start_pkg[@]}"; do
result[i]=0
@@ -115,8 +115,7 @@
popd > /dev/null
fi
- "emerge-${board}" -j ${quiet} ${cfg_bsp_baseboard_pkg} "${cfg_bsp_pkg}"
- "emerge-${board}" ${quiet} chromeos-config
+ "emerge-${board}" -j "${emerge_flags[@]}" "${config_packages[@]}"
# If the append_srcuris and project flags are set, append uris that aren't
# already in srcuris. Otherwise, overwrite srcuris.
@@ -144,7 +143,7 @@
# these cache cleanup code.
rm -rf "${metadata}/cache" "${metadata}/md5-cache" "${edb_cache}"
"ebuild-${board}" "${ebuild}" manifest
- "emerge-${board}" -j ${quiet} "chromeos-firmware-${board}"
+ "emerge-${board}" -j "${emerge_flags[@]}" "chromeos-firmware-${board}"
for i in "${!result[@]}"; do
if [[ "${result[i]}" -eq "0" ]]; then