From e38f90f3093eed3b80510e714175350588aff362 Mon Sep 17 00:00:00 2001 From: Chris Sosa Date: Wed, 20 Oct 2010 16:04:23 -0700 Subject: [PATCH] Add ability to blacklist packages from chromeos-base/chromeos. Change-Id: I05370137dbe9f9adc7b18f2ff77d1b7680275c37 BUG=7973 TEST=Ran with/without current blacklist file. Also, added chromeos-base/chromeos-chrome to test it actually dies correctly. Review URL: http://codereview.chromium.org/4005002 --- build_image | 19 +++++++++++++++++++ chromeos_blacklist | 3 +++ get_package_list | 8 +++++--- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 chromeos_blacklist diff --git a/build_image b/build_image index 8050d01612..68e0c2acfb 100755 --- a/build_image +++ b/build_image @@ -97,6 +97,25 @@ if [ -z "${FLAGS_board}" ] ; then exit 1 fi +check_blacklist() { + info "Verifying that the base image does not contain a blacklisted package." + info "Generating list of packages for chromeos-base/chromeos." + local package_blacklist_file="${SCRIPTS_DIR}/chromeos_blacklist" + if [ ! -e "${package_blacklist_file}" ]; then + warn "Missing blacklist file." + return + fi + local blacklisted_packages=$(${SCRIPTS_DIR}/get_package_list \ + --board="${FLAGS_board}" chromeos-base/chromeos \ + | grep -x -f "${package_blacklist_file}") + if [ -n "${blacklisted_packages}" ]; then + die "Blacklisted packages found: ${blacklisted_packages}." + fi + info "No blacklisted packages found." +} + +check_blacklist + # Verify user didn't specify incompatible flags for dev install shim if [ "${FLAGS_factory_install}" -eq "${FLAGS_TRUE}" ] && [ "${FLAGS_dev_install}" -eq "${FLAGS_TRUE}" ] ; then diff --git a/chromeos_blacklist b/chromeos_blacklist new file mode 100644 index 0000000000..a4e8f59227 --- /dev/null +++ b/chromeos_blacklist @@ -0,0 +1,3 @@ +dev-lang/python +dev-java/icedtea +dev-java/icedtea6-bin diff --git a/get_package_list b/get_package_list index 0deb1f0a6a..b45e2869ad 100755 --- a/get_package_list +++ b/get_package_list @@ -20,11 +20,13 @@ DEFINE_string board "$DEFAULT_BOARD" \ # Parse flags. FLAGS "$@" || exit 1 +eval set -- "${FLAGS_ARGV}" + +[[ -z "${FLAGS_board}" ]] && die "A board must be specified." if [[ -z "${FLAGS_ARGV}" ]]; then - echo "Please specify package." - echo "Usage: ./get_package_list.sh chromeos-base/chromeos > package.list" - exit 1 + warn "Please specify package." + die "Usage: ./get_package_list.sh chromeos-base/chromeos > package.list" fi emerge-$FLAGS_board --emptytree --usepkgonly -p -v --columns \