diff --git a/cros_mark_branch_as_stable b/cros_mark_branch_as_stable deleted file mode 100755 index e538235419..0000000000 --- a/cros_mark_branch_as_stable +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2010 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. - -# Mark all ebuilds in chromiumos-overlay and chromeos-overlay as stable and -# point them at the current version we have checked out. -# -# This is useful in case we want to verify that all ebuilds are pointing at the -# right commit hash when we are doing a build on a branch. It is intended to be -# used prior to tagging and can be used instead of a preflight queue. It is an -# alternative to cros_mark_all_as_stable that does not require a chroot and -# does not increase the revision number on ebuilds. -# -# Unlike cros_mark_all_as_stable, which only updates the latest stable ebuild -# for a given board, this script updates all stable ebuilds for all boards, -# including unused stable ebuilds. We do this for the sake of simplicity -# because it's hard to know in advance which ebuilds are truly unused, and it -# shouldn't hurt to update unused ebuilds. -# -# This script does not support cros_mark_as_stable_blacklist. If there are any -# packages in the blacklist, this script exits with an error message. -# -# Long term, the plan is to get rid of this script and replace it with -# cros_mark_all_as_stable. This script is only present to help with branching. -# -# Example usage: ./cros_mark_branch_as_stable - -# --- BEGIN COMMON.SH BOILERPLATE --- -# Load common CrOS utilities. Inside the chroot this file is installed in -# /usr/lib/crosutils. Outside the chroot we find it relative to the script's -# location. -find_common_sh() { - local common_paths=(/usr/lib/crosutils $(dirname "$(readlink -f "$0")")) - local path - - SCRIPT_ROOT= - for path in "${common_paths[@]}"; do - if [ -r "${path}/common.sh" ]; then - SCRIPT_ROOT=${path} - break - fi - done -} - -find_common_sh -. "${SCRIPT_ROOT}/common.sh" || (echo "Unable to load common.sh" && exit 1) -# --- END COMMON.SH BOILERPLATE --- - -function is_workon() { xargs grep -lE '^inherit.*cros-workon'; } -function is_stable() { xargs grep -lE '^KEYWORDS=[^~]*$'; } -function is_unstable() { xargs grep -lE '^KEYWORDS=.*~'; } - -function get_workon_commit() { - # Get the latest workon commit associated with an ebuild. - ebuild="$1" - dir=$(dirname "$ebuild") - CATEGORY=$(basename "$(dirname "$dir")") - CROS_WORKON_LOCALNAME=$(basename "$dir") - CROS_WORKON_SUBDIR= - - # Grab the code from the ebuild that initializes the CROS_WORKON_* - # variables, and eval it. Note that this only works if the variables are at - # the start of the line (i.e. it doesn't work for "if" statements). - eval $(grep -E '^CROS_WORKON' $ebuild) - - SUFFIX="$CROS_WORKON_LOCALNAME/$CROS_WORKON_SUBDIR" - if [[ "$CATEGORY" = "chromeos-base" ]]; then - SRCDIR="$GCLIENT_ROOT/src/platform/$SUFFIX" - else - SRCDIR="$GCLIENT_ROOT/src/third_party/$SUFFIX" - fi - - # TODO(anush): This hack is only necessary because the kernel ebuild has "if" - # statements, so we can't grab the CROS_WORKON_LOCALNAME properly. We should - # clean up the kernel ebuild and remove this hack. - if ! [[ -d "$SRCDIR" ]] && [[ "$CROS_WORKON_LOCALNAME" = "kernel" ]]; then - SRCDIR="$GCLIENT_ROOT/src/third_party/kernel/files" - fi - - cd $SRCDIR && git rev-parse HEAD -} - -BLACKLIST_FILE="${SCRIPTS_DIR}/cros_mark_as_stable_blacklist" -BLACKLIST=$(cat "$BLACKLIST_FILE") -if [[ -n "$BLACKLIST" ]]; then - die "$0 does not support cros_mark_as_stable_blacklist" -fi - -for overlay in "$GCLIENT_ROOT/src/private-overlays/chromeos-overlay" \ - "$GCLIENT_ROOT/src/third_party/chromiumos-overlay"; do - if [[ -d "$overlay" ]]; then - ebuilds=$(find "$overlay" -type f -name "*.ebuild" | is_workon | is_stable) - for ebuild in $ebuilds; do - dir=$(dirname "$ebuild") - unstable_ebuild=$(echo "$dir"/*-9999.ebuild | is_workon | is_unstable) - if [[ -f "$unstable_ebuild" ]]; then - COMMIT=$(get_workon_commit $unstable_ebuild) - sed -e '/^KEYWORDS="/s/~//g' -e '/^CROS_WORKON_COMMIT=/d' \ - -e "/^EAPI/s/\$/\nCROS_WORKON_COMMIT=\"$COMMIT\"/g" \ - "$unstable_ebuild" > "$ebuild" - else - echo "No 9999 ebuild for $ebuild" >&2 - COMMIT=$(get_workon_commit $ebuild) - sed -i -e "/^CROS_WORKON_COMMIT/s|=.*|=\"$COMMIT\"|" "$ebuild" - fi - if [[ -z "$COMMIT" ]]; then - die "No commit hash for $ebuild" - fi - done - fi -done - -echo Updated all ebuilds