mirror of
https://git.launchpad.net/livecd-rootfs
synced 2026-02-17 23:43:29 +00:00
Add architecture-specific boot configurators that translate the debian-cd boot shell scripts (boot-amd64, boot-arm64, boot-ppc64el, boot-riscv64, boot-s390x) into Python. The package uses a class hierarchy: - BaseBootConfigurator: abstract base with common functionality - GrubBootConfigurator: shared GRUB config generation - UEFIBootConfigurator: UEFI-specific shim/ESP handling - Architecture classes: AMD64, ARM64, PPC64EL, RISCV64, S390X A factory function make_boot_configurator_for_arch() creates the appropriate configurator for each architecture. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
"""Boot configuration package for ISO builder.
|
|
|
|
This package contains architecture-specific boot configurators for building
|
|
bootable ISOs for different architectures.
|
|
"""
|
|
|
|
import pathlib
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from ..apt_state import AptStateManager
|
|
from ..builder import Logger
|
|
from .base import BaseBootConfigurator
|
|
|
|
|
|
def make_boot_configurator_for_arch(
|
|
arch: str,
|
|
logger: "Logger",
|
|
apt_state: "AptStateManager",
|
|
iso_root: pathlib.Path,
|
|
) -> "BaseBootConfigurator":
|
|
"""Factory function to create boot configurator for a specific architecture."""
|
|
from .amd64 import AMD64BootConfigurator
|
|
from .arm64 import ARM64BootConfigurator
|
|
from .ppc64el import PPC64ELBootConfigurator
|
|
from .riscv64 import RISCV64BootConfigurator
|
|
from .s390x import S390XBootConfigurator
|
|
|
|
if arch == "amd64":
|
|
return AMD64BootConfigurator(logger, apt_state, iso_root)
|
|
elif arch == "arm64":
|
|
return ARM64BootConfigurator(logger, apt_state, iso_root)
|
|
elif arch == "ppc64el":
|
|
return PPC64ELBootConfigurator(logger, apt_state, iso_root)
|
|
elif arch == "riscv64":
|
|
return RISCV64BootConfigurator(logger, apt_state, iso_root)
|
|
elif arch == "s390x":
|
|
return S390XBootConfigurator(logger, apt_state, iso_root)
|
|
else:
|
|
raise ValueError(f"Unsupported architecture: {arch}")
|
|
|
|
|
|
__all__ = ["make_boot_configurator_for_arch"]
|