scripts: downgrade eclass eapi
BUG=b/438287197
TEST=local test (sys-lib/biutils-libs) and presubmit
RELEASE_NOTE=None
Change-Id: I7e50803bdff46f21d45c846682186ab242092c40
diff --git a/scripts/cros_portage_upgrade.py b/scripts/cros_portage_upgrade.py
index 37650e0..34c79f3 100644
--- a/scripts/cros_portage_upgrade.py
+++ b/scripts/cros_portage_upgrade.py
@@ -1629,20 +1629,21 @@
except OSError as e:
oper.Error(f"Failed to downgrade ebuild file(s) {e}")
- def _DowngradeDistutils(self):
- distutils_file = "/tmp/portage/eclass/distutils-r1.eclass"
- with open(distutils_file, "r+", encoding="utf-8") as f:
- changed = False
- lines = []
- for line in f.readlines():
- if line.strip() == "8) ;;":
- changed = True
- lines.append(line.replace("8", "[6-8]"))
- else:
- lines.append(line)
- if changed:
- f.seek(0)
- f.writelines(lines)
+ def _DowngradeEclassEAPI(self):
+ files_to_downgrade = ["/tmp/portage/eclass/distutils-r1.eclass", "/tmp/portage/eclass/dot-a.eclass"]
+ for path in files_to_downgrade:
+ with open(path, "r+", encoding="utf-8") as f:
+ changed = False
+ lines = []
+ for line in f.readlines():
+ if line.strip() == "8) ;;":
+ changed = True
+ lines.append(line.replace("8", "[6-8]"))
+ else:
+ lines.append(line)
+ if changed:
+ f.seek(0)
+ f.writelines(lines)
def PrepareToRun(self):
"""Checkout upstream gentoo if necessary, and any other prep steps."""
@@ -1715,7 +1716,7 @@
# TODO(b/242758296) Remove this when ChromeOS supports EAPI 8.
self._DowngradeEAPI()
- self._DowngradeDistutils()
+ self._DowngradeEclassEAPI()
# An empty directory is needed to trick equery later.
self._emptydir = tempfile.mkdtemp()