return cast(str, namespace.distribution.default_release())
+def config_default_tools_tree_distribution(namespace: argparse.Namespace) -> Distribution:
+ detected = detect_distribution()[0]
+
+ if not detected:
+ return Distribution.custom
+
+ return detected.default_tools_tree_distribution()
+
+
def config_default_source_date_epoch(namespace: argparse.Namespace) -> Optional[int]:
for env in namespace.environment:
if s := startswith(env, "SOURCE_DATE_EPOCH="):
match=config_make_enum_matcher(Distribution),
choices=Distribution.choices(),
default_factory_depends=("distribution",),
- default_factory=lambda ns: ns.distribution.default_tools_tree_distribution(),
+ default_factory=config_default_tools_tree_distribution,
help="Set the distribution to use for the default tools tree",
),
ConfigSetting(
def default_release(self) -> str:
return self.installer().default_release()
- def default_tools_tree_distribution(self) -> Optional["Distribution"]:
- return self.installer().default_tools_tree_distribution()
+ def default_tools_tree_distribution(self) -> "Distribution":
+ return self.installer().default_tools_tree_distribution() or self
def grub_prefix(self) -> str:
return self.installer().grub_prefix()
from mkosi.config import Architecture, Config
from mkosi.context import Context
-from mkosi.distributions import Distribution, DistributionInstaller, PackageType
+from mkosi.distributions import DistributionInstaller, PackageType
from mkosi.installer import PackageManager
from mkosi.installer.pacman import Pacman, PacmanRepository
from mkosi.log import die
def default_release(cls) -> str:
return "rolling"
- @classmethod
- def default_tools_tree_distribution(cls) -> Distribution:
- return Distribution.arch
-
@classmethod
def package_manager(cls, config: "Config") -> type[PackageManager]:
return Pacman
from mkosi.archive import extract_tar
from mkosi.config import Architecture, Config
from mkosi.context import Context
-from mkosi.distributions import Distribution, DistributionInstaller, PackageType
+from mkosi.distributions import DistributionInstaller, PackageType
from mkosi.installer import PackageManager
from mkosi.installer.apt import Apt, AptRepository
from mkosi.log import die
def default_release(cls) -> str:
return "testing"
- @classmethod
- def default_tools_tree_distribution(cls) -> Distribution:
- return Distribution.debian
-
@classmethod
def package_manager(cls, config: Config) -> type[PackageManager]:
return Apt
from mkosi.config import Architecture, Config
from mkosi.context import Context
from mkosi.distributions import (
- Distribution,
DistributionInstaller,
PackageType,
join_mirror,
def default_release(cls) -> str:
return "40"
- @classmethod
- def default_tools_tree_distribution(cls) -> Distribution:
- return Distribution.fedora
-
@classmethod
def grub_prefix(cls) -> str:
return "grub2"
from mkosi.config import Architecture
from mkosi.context import Context
-from mkosi.distributions import Distribution, fedora, join_mirror
+from mkosi.distributions import fedora, join_mirror
from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey
from mkosi.log import die
from mkosi.util import listify
def default_release(cls) -> str:
return "cauldron"
- @classmethod
- def default_tools_tree_distribution(cls) -> Distribution:
- return Distribution.mageia
-
@classmethod
def install(cls, context: Context) -> None:
cls.install_packages(context, ["filesystem"], apivfs=False)
from mkosi.config import Architecture
from mkosi.context import Context
-from mkosi.distributions import Distribution, fedora, join_mirror
+from mkosi.distributions import fedora, join_mirror
from mkosi.installer.rpm import RpmRepository, find_rpm_gpgkey
from mkosi.log import die
from mkosi.util import listify
def default_release(cls) -> str:
return "cooker"
- @classmethod
- def default_tools_tree_distribution(cls) -> Distribution:
- return Distribution.openmandriva
-
@classmethod
def install(cls, context: Context) -> None:
cls.install_packages(context, ["filesystem"], apivfs=False)
from mkosi.config import Architecture, Config
from mkosi.context import Context
-from mkosi.distributions import Distribution, DistributionInstaller, PackageType, join_mirror
+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
def default_release(cls) -> str:
return "tumbleweed"
- @classmethod
- def default_tools_tree_distribution(cls) -> Distribution:
- return Distribution.opensuse
-
@classmethod
def grub_prefix(cls) -> str:
return "grub2"
from pathlib import Path
from mkosi.context import Context
-from mkosi.distributions import Distribution, debian
+from mkosi.distributions import debian
from mkosi.installer.apt import AptRepository
from mkosi.util import listify
def default_release(cls) -> str:
return "noble"
- @classmethod
- def default_tools_tree_distribution(cls) -> Distribution:
- return Distribution.ubuntu
-
@staticmethod
@listify
def repositories(context: Context, local: bool = True) -> Iterable[AptRepository]: