--- tmt-1.24.1/tmt/steps/prepare/install.py.old 2023-06-22 11:57:06.633409186 +0200 +++ tmt-1.24.1/tmt/steps/prepare/install.py 2023-06-22 11:57:45.239501579 +0200 @@ -273,6 +273,7 @@ class InstallDnf(InstallBase): package_manager = "dnf" copr_plugin = "dnf-plugins-core" + skip_missing_option = "--skip-broken" def prepare_command(self) -> Tuple[Command, Command]: """ Prepare installation command """ @@ -290,7 +291,7 @@ class InstallDnf(InstallBase): command += Command(self.package_manager) if self.skip_missing: - command += Command('--skip-broken') + options += Command(self.skip_missing_option) return (command, options) @@ -356,6 +357,14 @@ class InstallDnf(InstallBase): self.guest.execute(command) +class InstallDnf5(InstallDnf): + """ Install packages using dnf5 """ + + package_manager = "dnf5" + copr_plugin = "dnf5-plugins" + skip_missing_option = "--skip-unavailable" + + class InstallYum(InstallDnf): """ Install packages using yum """ @@ -592,6 +601,9 @@ class PrepareInstall(tmt.steps.prepare.P elif guest.facts.package_manager == GuestPackageManager.DNF: installer = InstallDnf(logger=logger, parent=self, guest=guest) + elif guest.facts.package_manager == GuestPackageManager.DNF5: + installer = InstallDnf5(logger=logger, parent=self, guest=guest) + elif guest.facts.package_manager == GuestPackageManager.YUM: installer = InstallYum(logger=logger, parent=self, guest=guest) --- tmt-1.24.1/tmt/steps/provision/__init__.py.old 2023-06-22 11:56:50.556370700 +0200 +++ tmt-1.24.1/tmt/steps/provision/__init__.py 2023-06-22 11:58:00.472538032 +0200 @@ -64,6 +64,7 @@ class CheckRsyncOutcome(enum.Enum): class GuestPackageManager(enum.Enum): DNF = 'dnf' + DNF5 = 'dnf5' YUM = 'yum' RPM_OSTREE = 'rpm-ostree' @@ -274,8 +275,9 @@ class GuestFacts(tmt.utils.SerializableC guest, [ (Command('stat', '/run/ostree-booted'), GuestPackageManager.RPM_OSTREE), - (Command('rpm', '-q', 'dnf'), GuestPackageManager.DNF), - (Command('rpm', '-q', 'yum'), GuestPackageManager.YUM), + (Command('dnf5', '--version'), GuestPackageManager.DNF5), + (Command('dnf', '--version'), GuestPackageManager.DNF), + (Command('yum', '--version'), GuestPackageManager.YUM), # And, one day, we'd follow up on this with... # (Command('dpkg', '-l', 'apt'), 'apt') ])