| # Copyright 2018 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. |
| |
| # When portage upgrades in place, it sometimes mixes old & new versions of |
| # the python modules. So the old APIs might be used with new callers who |
| # try to pass args it doesn't expect. We can workaround this by upgrading |
| # twice -- the first will fail partially, but the second makes it through. |
| |
| if qlist -Iq '<portage-2.3' >/dev/null; then |
| echo "Trying upgrade of portage" |
| if ! sudo emerge -qug '>portage-2.3'; then |
| echo "Retrying upgrade" |
| sudo emerge -qug '>portage-2.3' |
| fi |
| fi |