michael.hudson@canonical.com a2a166d93d
Standardize whitespace in GRUB menu entry stanzas
Use consistent formatting across all architectures: 4-space indent,
two spaces after "linux", one space after "initrd". Also fix an extra
blank line before "fi" in amd64's UEFI section caused by f-string
interpolation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:06:00 +13:00

75 lines
2.2 KiB
Python

"""PowerPC 64-bit Little Endian architecture boot configuration."""
import pathlib
import shutil
from .grub import (
copy_grub_common_files,
copy_grub_modules,
GrubBootConfigurator,
)
from .base import default_kernel_params
class PPC64ELBootConfigurator(GrubBootConfigurator):
"""Boot setup for PowerPC 64-bit Little Endian architecture."""
def mkisofs_opts(self) -> list[str | pathlib.Path]:
"""Return mkisofs options for PPC64EL."""
return []
def extract_files(self) -> None:
"""Download and extract bootloader packages for PPC64EL."""
self.logger.log("extracting PPC64EL boot files")
grub_pkg_dir = self.scratch.joinpath("grub-pkg")
# Download and extract bootloader packages
self.download_and_extract_package("grub2-common", grub_pkg_dir)
self.download_and_extract_package("grub-ieee1275-bin", grub_pkg_dir)
# Add common files for GRUB to tree
copy_grub_common_files(grub_pkg_dir, self.iso_root)
# Add IEEE1275 ppc boot files
ppc_dir = self.iso_root.joinpath("ppc")
ppc_dir.mkdir()
src_grub_dir = grub_pkg_dir.joinpath("usr", "lib", "grub", "powerpc-ieee1275")
# Copy bootinfo.txt to ppc directory
shutil.copy(
src_grub_dir.joinpath("bootinfo.txt"), ppc_dir.joinpath("bootinfo.txt")
)
# Copy eltorito.elf to boot/grub as powerpc.elf
shutil.copy(
src_grub_dir.joinpath("eltorito.elf"),
self.iso_root.joinpath("boot", "grub", "powerpc.elf"),
)
# Copy GRUB modules
copy_grub_modules(
grub_pkg_dir, self.iso_root, "powerpc-ieee1275", ["*.mod", "*.lst"]
)
def generate_grub_config(self) -> str:
"""Generate grub.cfg for PPC64EL."""
kernel_params = default_kernel_params(self.project)
result = self.grub_header()
# Main menu entry
result += f"""\
menuentry "Try or Install {self.humanproject}" {{
set gfxpayload=keep
linux /casper/vmlinux quiet {kernel_params}
initrd /casper/initrd
}}
"""
# HWE kernel option if available
result += self.hwe_menu_entry("vmlinux", kernel_params, extra_params="quiet ")
return result