Blob Blame History Raw
--- 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')
                 ])