chroot hook: Unmerge old libchrome when switching to new slot

libchrome is being uprevved to r369476

BUG=b/26772882
TEST=./build_packages
CQ-DEPEND=CL:323378

Change-Id: Id677c3b9f2d8288eb1be0a3fdf617225626e374c
Reviewed-on: https://chromium-review.googlesource.com/323435
Commit-Ready: Alex Vakulenko <avakulenko@google.com>
Tested-by: Alex Vakulenko <avakulenko@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/chroot_version_hooks.d/139_unmerge_libchrome b/chroot_version_hooks.d/139_unmerge_libchrome
new file mode 100644
index 0000000..20fd14c
--- /dev/null
+++ b/chroot_version_hooks.d/139_unmerge_libchrome
@@ -0,0 +1,32 @@
+# Copyright 2015 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.
+
+# Remove old version of chromeos-base/libchrome as it is being uprevved to a new
+# revision and will use a different slot.
+opkg="chromeos-base/libchrome"
+
+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}; then
+    ${emerge} -Cq ${opkg}
+  fi
+}
+
+update / &
+
+for board_root in /build/*; do
+  board=${board_root##*/}
+  update ${board_root} ${board} &
+done
+
+wait