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