From cc44d2a28395a1113569c0a7a6fa09272d200ca5 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Tue, 18 Mar 2025 13:22:07 +0100 Subject: [PATCH] Simplify package manager code a little --- mkosi/distributions/arch.py | 3 +-- mkosi/distributions/centos.py | 3 +-- mkosi/distributions/debian.py | 3 +-- mkosi/distributions/fedora.py | 3 +-- mkosi/distributions/opensuse.py | 13 ++++--------- 5 files changed, 8 insertions(+), 17 deletions(-) diff --git a/mkosi/distributions/arch.py b/mkosi/distributions/arch.py index 65910801e..8373306a7 100644 --- a/mkosi/distributions/arch.py +++ b/mkosi/distributions/arch.py @@ -9,7 +9,6 @@ from mkosi.config import Architecture, Config from mkosi.context import Context from mkosi.curl import curl from mkosi.distributions import DistributionInstaller, PackageType -from mkosi.installer import PackageManager from mkosi.installer.pacman import Pacman, PacmanRepository from mkosi.log import complete_step, die @@ -32,7 +31,7 @@ class Installer(DistributionInstaller): return "rolling" @classmethod - def package_manager(cls, config: "Config") -> type[PackageManager]: + def package_manager(cls, config: "Config") -> type[Pacman]: return Pacman @classmethod diff --git a/mkosi/distributions/centos.py b/mkosi/distributions/centos.py index 29f03c15c..e001bf7a7 100644 --- a/mkosi/distributions/centos.py +++ b/mkosi/distributions/centos.py @@ -10,7 +10,6 @@ from mkosi.distributions import ( PackageType, join_mirror, ) -from mkosi.installer import PackageManager from mkosi.installer.dnf import Dnf from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey, setup_rpm from mkosi.log import die @@ -45,7 +44,7 @@ class Installer(DistributionInstaller): return config.release.partition(".")[0] @classmethod - def package_manager(cls, config: "Config") -> type[PackageManager]: + def package_manager(cls, config: "Config") -> type[Dnf]: return Dnf @classmethod diff --git a/mkosi/distributions/debian.py b/mkosi/distributions/debian.py index 1b09fc457..7dfad1398 100644 --- a/mkosi/distributions/debian.py +++ b/mkosi/distributions/debian.py @@ -9,7 +9,6 @@ from mkosi.archive import extract_tar from mkosi.config import Architecture, Config from mkosi.context import Context from mkosi.distributions import DistributionInstaller, PackageType -from mkosi.installer import PackageManager from mkosi.installer.apt import Apt, AptRepository from mkosi.log import die from mkosi.run import run, workdir @@ -34,7 +33,7 @@ class Installer(DistributionInstaller): return "testing" @classmethod - def package_manager(cls, config: Config) -> type[PackageManager]: + def package_manager(cls, config: Config) -> type[Apt]: return Apt @classmethod diff --git a/mkosi/distributions/fedora.py b/mkosi/distributions/fedora.py index 1bb5ac131..833e820e2 100644 --- a/mkosi/distributions/fedora.py +++ b/mkosi/distributions/fedora.py @@ -14,7 +14,6 @@ from mkosi.distributions import ( PackageType, join_mirror, ) -from mkosi.installer import PackageManager from mkosi.installer.dnf import Dnf from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey, setup_rpm from mkosi.log import die @@ -114,7 +113,7 @@ class Installer(DistributionInstaller): return "grub2" @classmethod - def package_manager(cls, config: Config) -> type[PackageManager]: + def package_manager(cls, config: Config) -> type[Dnf]: return Dnf @classmethod diff --git a/mkosi/distributions/opensuse.py b/mkosi/distributions/opensuse.py index ff9360c0c..e959cfbd6 100644 --- a/mkosi/distributions/opensuse.py +++ b/mkosi/distributions/opensuse.py @@ -3,13 +3,13 @@ import tempfile from collections.abc import Iterable from pathlib import Path +from typing import Union from xml.etree import ElementTree from mkosi.config import Architecture, Config from mkosi.context import Context from mkosi.curl import curl from mkosi.distributions import DistributionInstaller, PackageType, join_mirror -from mkosi.installer import PackageManager from mkosi.installer.dnf import Dnf from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey, setup_rpm from mkosi.installer.zypper import Zypper @@ -40,7 +40,7 @@ class Installer(DistributionInstaller): return "grub2" @classmethod - def package_manager(cls, config: Config) -> type[PackageManager]: + def package_manager(cls, config: Config) -> Union[type[Dnf], type[Zypper]]: if config.find_binary("zypper"): return Zypper else: @@ -49,12 +49,7 @@ class Installer(DistributionInstaller): @classmethod def setup(cls, context: Context) -> None: setup_rpm(context, dbbackend="ndb") - - zypper = context.config.find_binary("zypper") - if zypper: - Zypper.setup(context, list(cls.repositories(context))) - else: - Dnf.setup(context, list(cls.repositories(context))) + cls.package_manager(context.config).setup(context, list(cls.repositories(context))) @classmethod def install(cls, context: Context) -> None: @@ -66,7 +61,7 @@ class Installer(DistributionInstaller): yield RpmRepository(id="local-mirror", url=f"baseurl={context.config.local_mirror}", gpgurls=()) return - zypper = context.config.find_binary("zypper") + zypper = cls.package_manager(context.config) is Zypper mirror = context.config.mirror or "https://download.opensuse.org" if context.config.release == "tumbleweed" or context.config.release.isdigit(): -- 2.47.2