]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Have mageia and openmandriva inherit from Fedora 2331/head
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 26 Jan 2024 14:41:39 +0000 (15:41 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 26 Jan 2024 15:01:47 +0000 (16:01 +0100)
These are similar enough to Fedora so let's have them inherit from
Fedora.

mkosi/distributions/mageia.py
mkosi/distributions/openmandriva.py

index b0d2ebfeb15d9cd4f1332533fb2dc3d70da14051..ddfee44a3190d5195f488c95969b10dc4c469f42 100644 (file)
@@ -5,18 +5,13 @@ from collections.abc import Iterable, Sequence
 
 from mkosi.config import Architecture
 from mkosi.context import Context
-from mkosi.distributions import (
-    Distribution,
-    DistributionInstaller,
-    PackageType,
-    join_mirror,
-)
-from mkosi.installer.dnf import createrepo_dnf, invoke_dnf, localrepo_dnf, setup_dnf
+from mkosi.distributions import Distribution, fedora, join_mirror
+from mkosi.installer.dnf import localrepo_dnf
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey
 from mkosi.log import die
 
 
-class Installer(DistributionInstaller):
+class Installer(fedora.Installer):
     @classmethod
     def pretty_name(cls) -> str:
         return "Mageia"
@@ -25,10 +20,6 @@ class Installer(DistributionInstaller):
     def filesystem(cls) -> str:
         return "ext4"
 
-    @classmethod
-    def package_type(cls) -> PackageType:
-        return PackageType.rpm
-
     @classmethod
     def default_release(cls) -> str:
         return "cauldron"
@@ -37,21 +28,9 @@ class Installer(DistributionInstaller):
     def default_tools_tree_distribution(cls) -> Distribution:
         return Distribution.mageia
 
-    @classmethod
-    def createrepo(cls, context: Context) -> None:
-        createrepo_dnf(context)
-
-    @classmethod
-    def setup(cls, context: Context) -> None:
-        setup_dnf(context, cls.repositories(context))
-
-    @classmethod
-    def install(cls, context: Context) -> None:
-        cls.install_packages(context, ["filesystem"], apivfs=False)
-
     @classmethod
     def install_packages(cls, context: Context, packages: Sequence[str], apivfs: bool = True) -> None:
-        invoke_dnf(context, "install", packages, apivfs=apivfs)
+        super().install_packages(context, packages, apivfs)
 
         for d in context.root.glob("boot/vmlinuz-*"):
             kver = d.name.removeprefix("vmlinuz-")
@@ -59,10 +38,6 @@ class Installer(DistributionInstaller):
             if not vmlinuz.exists():
                 shutil.copy2(d, vmlinuz)
 
-    @classmethod
-    def remove_packages(cls, context: Context, packages: Sequence[str]) -> None:
-        invoke_dnf(context, "remove", packages)
-
     @classmethod
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         gpgurls = (
index f38f0b5914a7fc4a95dc85bdfffff09fe0834298..c1b682fa02fab7fcbd5930277ec4ba2ae2301639 100644 (file)
@@ -5,18 +5,13 @@ from collections.abc import Iterable, Sequence
 
 from mkosi.config import Architecture
 from mkosi.context import Context
-from mkosi.distributions import (
-    Distribution,
-    DistributionInstaller,
-    PackageType,
-    join_mirror,
-)
-from mkosi.installer.dnf import createrepo_dnf, invoke_dnf, localrepo_dnf, setup_dnf
+from mkosi.distributions import Distribution, fedora, join_mirror
+from mkosi.installer.dnf import localrepo_dnf
 from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey
 from mkosi.log import die
 
 
-class Installer(DistributionInstaller):
+class Installer(fedora.Installer):
     @classmethod
     def pretty_name(cls) -> str:
         return "OpenMandriva"
@@ -25,10 +20,6 @@ class Installer(DistributionInstaller):
     def filesystem(cls) -> str:
         return "ext4"
 
-    @classmethod
-    def package_type(cls) -> PackageType:
-        return PackageType.rpm
-
     @classmethod
     def default_release(cls) -> str:
         return "cooker"
@@ -37,21 +28,9 @@ class Installer(DistributionInstaller):
     def default_tools_tree_distribution(cls) -> Distribution:
         return Distribution.openmandriva
 
-    @classmethod
-    def createrepo(cls, context: Context) -> None:
-        createrepo_dnf(context)
-
-    @classmethod
-    def setup(cls, context: Context) -> None:
-        setup_dnf(context, cls.repositories(context))
-
-    @classmethod
-    def install(cls, context: Context) -> None:
-        cls.install_packages(context, ["filesystem"], apivfs=False)
-
     @classmethod
     def install_packages(cls, context: Context, packages: Sequence[str], apivfs: bool = True) -> None:
-        invoke_dnf(context, "install", packages, apivfs=apivfs)
+        super().install_packages(context, packages, apivfs)
 
         for d in context.root.glob("boot/vmlinuz-*"):
             kver = d.name.removeprefix("vmlinuz-")
@@ -63,10 +42,6 @@ class Installer(DistributionInstaller):
             if not vmlinuz.exists():
                 shutil.copy2(d, vmlinuz)
 
-    @classmethod
-    def remove_packages(cls, context: Context, packages: Sequence[str]) -> None:
-        invoke_dnf(context, "remove", packages)
-
     @classmethod
     def repositories(cls, context: Context) -> Iterable[RpmRepository]:
         mirror = context.config.mirror or "http://mirror.openmandriva.org"