From 05ed4086da67567d2d40c49999a0c56baa70fdbd Mon Sep 17 00:00:00 2001 From: Ryan Cui Date: Thu, 26 Jul 2012 13:33:34 -0700 Subject: [PATCH] Add upgrade hooks to support removing chrome projects from manifest. See the bug for details. BUG=chromium-os:32963. TEST=Locally, remote trybots. Change-Id: I33f5c42b36f3e06139036c299c2fc2c2ff026411 Reviewed-on: https://gerrit.chromium.org/gerrit/28543 Reviewed-by: David James Commit-Ready: Ryan Cui Tested-by: Ryan Cui --- chroot_version_hooks.d/44_fix_gerrit_chrome | 30 +++++++++++++++++++++ sdk_lib/enter_chroot.sh | 11 ++++++++ 2 files changed, 41 insertions(+) create mode 100644 chroot_version_hooks.d/44_fix_gerrit_chrome diff --git a/chroot_version_hooks.d/44_fix_gerrit_chrome b/chroot_version_hooks.d/44_fix_gerrit_chrome new file mode 100644 index 0000000000..2f902f8173 --- /dev/null +++ b/chroot_version_hooks.d/44_fix_gerrit_chrome @@ -0,0 +1,30 @@ +# Copyright (c) 2012 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. + +# Move users of CHROME_ORIGIN=GERRIT_SOURCE to the new gerrit-source.xml +# manifest, as well as setting up the chromium/src repository properly for +# submodules. crosbug.com/32963. + +# We only want to run this hook once. Since this also gets called from +# enter_chroot, look for the marker. +MARKER="/tmp/44_fix_gerrit_chrome" +if [ -e "${MARKER}" ]; then + exit 0 +fi + +chrome_workon="=chromeos-base/chromeos-chrome-9999" +cros_workon_dir="${HOME}/trunk/.config/cros_workon/*" + +if grep -q "${chrome_workon}" ${cros_workon_dir} &> /dev/null; then + repo selfupdate && repo init -m gerrit-source.xml +fi + +( + cd "${HOME}/trunk/chromium/src" + ignore_cmd='git config -f $toplevel/.git/config submodule.$name.ignore all' + git submodule foreach "${ignore_cmd}" &> /dev/null +) + +touch "${MARKER}" +exit 0 diff --git a/sdk_lib/enter_chroot.sh b/sdk_lib/enter_chroot.sh index 86c7f6116d..53728e5b53 100755 --- a/sdk_lib/enter_chroot.sh +++ b/sdk_lib/enter_chroot.sh @@ -608,6 +608,17 @@ else cmd=( sudo -i -u "$USER" ) fi +# TODO(rcui): Remove this hook on 8/26/2012. +# crosbug.com/32963 +if [ $FLAGS_early_make_chroot -eq $FLAGS_FALSE ]; then + chroot_script_root="\${HOME}/trunk/src/scripts" + hook_rel_path="chroot_version_hooks.d/44_fix_gerrit_chrome" + gerrit_chrome_hook="${chroot_script_root}/${hook_rel_path}" + entry_hook=(eval "source \"${gerrit_chrome_hook}\"") + sudo -- chroot "${FLAGS_chroot}" "${cmd[@]}" "${CHROOT_PASSTHRU[@]}" \ + "${entry_hook[@]}" +fi + sudo -- chroot "${FLAGS_chroot}" "${cmd[@]}" "${CHROOT_PASSTHRU[@]}" "$@" # Remove trap and explicitly unmount