update hooks: force upgrade of dev-install
In order to upgrade portage, we need to update dev-install to a version
that doesn't conflict with the new portage.
BUG=chromium-os:35982
TEST=`./update_chroot` updated all boards to the latest dev-install
Change-Id: I60410b3d875b2b26fe895305f8b98b20578eb2a6
Reviewed-on: https://gerrit.chromium.org/gerrit/43058
Reviewed-by: David James <davidjames@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/chroot_version_hooks.d/52_update_dev_install b/chroot_version_hooks.d/52_update_dev_install
new file mode 100644
index 0000000..03e2527
--- /dev/null
+++ b/chroot_version_hooks.d/52_update_dev_install
@@ -0,0 +1,36 @@
+# Copyright (c) 2013 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.
+
+# The dev-install package used to install into /etc/portage/ that older portage
+# would ignore, but newer one uses (and fails). So force all boards to install
+# the latest version.
+
+opkg="chromeos-base/dev-install"
+ver="0.0.1-r427"
+
+export CLEAN_DELAY=0
+
+update() {
+ local root=$1 board=$2 emerge
+
+ if [[ -z ${board} ]]; then
+ board="root"
+ emerge="sudo -E emerge"
+ else
+ emerge="emerge-${board}"
+ fi
+
+ if portageq has_version ${root} "<${opkg}-${ver}"; then
+ ${emerge} -1ug ">=${opkg}-${ver}"
+ fi
+}
+
+update / &
+
+for board_root in /build/*; do
+ board=${board_root##*/}
+ update ${board_root} ${board} &
+done
+
+wait