From c1bef56eafb6809a91816c3c17e57050c1724fc4 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 8 Jan 2024 12:50:23 +0100 Subject: [PATCH] Remove a few TODOs and FIXMEs --- mkosi/__init__.py | 11 ++++++----- mkosi/distributions/__init__.py | 3 +++ mkosi/distributions/fedora.py | 12 +----------- mkosi/manifest.py | 1 - 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 3223f5e7e..73db074b1 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -164,9 +164,10 @@ def install_build_packages(context: Context) -> None: if not context.config.build_scripts or not context.config.build_packages: return - # TODO: move to parenthesised context managers once on 3.10 - pd = str(context.config.distribution).capitalize() - with complete_step(f"Installing build packages for {pd}"), mount_build_overlay(context): + with ( + complete_step(f"Installing build packages for {context.config.distribution.pretty_name()}"), + mount_build_overlay(context), + ): context.config.distribution.install_packages(context, context.config.build_packages) @@ -385,7 +386,7 @@ def finalize_scripts(scripts: Mapping[str, Sequence[PathString]] = {}) -> Iterat def finalize_host_scripts( context: Context, - helpers: dict[str, Sequence[PathString]], # FIXME: change dict to Mapping when PyRight is fixed + helpers: Mapping[str, Sequence[PathString]], ) -> contextlib.AbstractContextManager[Path]: scripts: dict[str, Sequence[PathString]] = {} if find_binary("git", root=context.config.tools()): @@ -393,7 +394,7 @@ def finalize_host_scripts( for binary in ("useradd", "groupadd"): if find_binary(binary, root=context.config.tools()): scripts[binary] = (binary, "--root", context.root) - return finalize_scripts(scripts | helpers | package_manager_scripts(context)) + return finalize_scripts(scripts | dict(helpers) | package_manager_scripts(context)) def finalize_chroot_scripts(context: Context) -> contextlib.AbstractContextManager[Path]: diff --git a/mkosi/distributions/__init__.py b/mkosi/distributions/__init__.py index b714afb84..4c289d5d0 100644 --- a/mkosi/distributions/__init__.py +++ b/mkosi/distributions/__init__.py @@ -106,6 +106,9 @@ class Distribution(StrEnum): def is_apt_distribution(self) -> bool: return self in (Distribution.debian, Distribution.ubuntu) + def pretty_name(self) -> str: + return self.installer().pretty_name() + def setup(self, context: "Context") -> None: return self.installer().setup(context) diff --git a/mkosi/distributions/fedora.py b/mkosi/distributions/fedora.py index 45d9d11d2..c62298d76 100644 --- a/mkosi/distributions/fedora.py +++ b/mkosi/distributions/fedora.py @@ -125,8 +125,7 @@ class Installer(DistributionInstaller): ), ] - # TODO: Use `filelists=True` when F37 goes EOL. - setup_dnf(context, repos, filelists=fedora_release_at_most(context.config.release, "37")) + setup_dnf(context, repos, filelists=True) @classmethod def install(cls, context: Context) -> None: @@ -156,12 +155,3 @@ class Installer(DistributionInstaller): die(f"Architecture {a} is not supported by Fedora") return a - - -def fedora_release_at_most(release: str, threshold: str) -> bool: - if release in ("rawhide", "eln"): - return False - if threshold in ("rawhide", "eln"): - return True - # If neither is 'rawhide', both must be integers - return int(release) <= int(threshold) diff --git a/mkosi/manifest.py b/mkosi/manifest.py index 2f491a229..214a9d547 100644 --- a/mkosi/manifest.py +++ b/mkosi/manifest.py @@ -96,7 +96,6 @@ class Manifest: self.record_deb_packages(root) if self.config.distribution.package_type() == PackageType.pkg: self.record_pkg_packages(root) - # TODO: add implementations for other package managers def record_rpm_packages(self, root: Path) -> None: # On Debian, rpm/dnf ship with a patch to store the rpmdb under ~/ so rpm -- 2.47.3