--- 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')
])