From 7f5a8aa7d0ac774f8bfdf333e0da65cf54d193b4 Mon Sep 17 00:00:00 2001 From: Vivek Yadav Date: Sun, 5 Jul 2026 18:28:15 -0700 Subject: [PATCH] Fix Texinfo source fallback Check distro package availability before installing texinfo so images without a candidate package use the source-build fallback instead of failing during apt install. Install only available fallback dependency packages before building from source, which keeps Ubuntu images from failing on RPM-only package names such as perl-Data-Dumper. --- lisa/tools/texinfo.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lisa/tools/texinfo.py b/lisa/tools/texinfo.py index 568431e367..2fa9bd4aa5 100644 --- a/lisa/tools/texinfo.py +++ b/lisa/tools/texinfo.py @@ -26,12 +26,24 @@ def can_install(self) -> bool: def _install(self) -> bool: posix_os: Posix = cast(Posix, self.node.os) try: - posix_os.install_packages("texinfo", timeout=2000) + if posix_os.is_package_in_repo("texinfo"): + posix_os.install_packages("texinfo", timeout=2000) + else: + self._install_from_src_with_dependencies(posix_os) except MissingPackagesException: - posix_os.install_packages(["perl", "perl-Data-Dumper"]) - self._install_from_src() + self._install_from_src_with_dependencies(posix_os) return self._check_exists() + def _install_from_src_with_dependencies(self, posix_os: Posix) -> None: + source_packages = [ + package + for package in ["perl", "perl-Data-Dumper"] + if posix_os.is_package_in_repo(package) + ] + if source_packages: + posix_os.install_packages(source_packages) + self._install_from_src() + def _install_from_src(self) -> None: tool_path = self.get_tool_path() wget = self.node.tools[Wget]