From: Daan De Meyer Date: Fri, 15 Jul 2022 20:34:06 +0000 (+0200) Subject: Make grub/grub2 check distribution independent X-Git-Tag: v14~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f6142b89af158edbf35480c6061d8a726e912911;p=thirdparty%2Fmkosi.git Make grub/grub2 check distribution independent Check if grub-install exists instead of hardcoding distributions --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 59cf5d685..c569e7de0 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -3425,19 +3425,7 @@ def install_boot_loader( run_workspace_command(args, root, ["bootctl", "install"]) if args.get_partition(PartitionIdentifier.bios): - grub = ( - "grub" - if args.distribution in (Distribution.ubuntu, - Distribution.debian, - Distribution.arch, - Distribution.gentoo) - else "grub2" - ) - # TODO: Just use "grub" once https://github.com/systemd/systemd/pull/16645 is widely available. - if args.distribution in (Distribution.ubuntu, Distribution.debian, Distribution.opensuse): - grub = f"/usr/sbin/{grub}" - - install_grub(args, root, loopdev, grub) + install_grub(args, root, loopdev) def install_extra_trees(args: MkosiArgs, root: Path, for_cache: bool) -> None: diff --git a/mkosi/backend.py b/mkosi/backend.py index 0af30f908..7ce4a7ac2 100644 --- a/mkosi/backend.py +++ b/mkosi/backend.py @@ -874,7 +874,7 @@ def write_grub_config(args: MkosiArgs, root: Path) -> None: f.write('GRUB_SERIAL_COMMAND="serial --unit=0 --speed 115200"\n') -def install_grub(args: MkosiArgs, root: Path, loopdev: Path, grub: str) -> None: +def install_grub(args: MkosiArgs, root: Path, loopdev: Path) -> None: assert args.partition_table is not None part = args.get_partition(PartitionIdentifier.bios) @@ -885,6 +885,8 @@ def install_grub(args: MkosiArgs, root: Path, loopdev: Path, grub: str) -> None: nspawn_params = nspawn_params_for_blockdev_access(args, loopdev) + grub = "/usr/sbin/grub" if root.joinpath("usr/sbin/grub-install").exists() else "/usr/sbin/grub2" + cmdline: Sequence[PathString] = [f"{grub}-install", "--modules=ext2 part_gpt", "--target=i386-pc", loopdev] run_workspace_command(args, root, cmdline, nspawn_params=nspawn_params)