]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Make grub/grub2 check distribution independent
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 15 Jul 2022 20:34:06 +0000 (22:34 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 27 Jul 2022 14:29:32 +0000 (16:29 +0200)
Check if grub-install exists instead of hardcoding distributions

mkosi/__init__.py
mkosi/backend.py

index 59cf5d685f561b2d222d16470ff4dfff175d3568..c569e7de01264bf265e733b35124064fa96dfcce 100644 (file)
@@ -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:
index 0af30f908fdc45d693133a988469b696e92ab034..7ce4a7ac29bc31564dfaada4912dddad6fdb4417 100644 (file)
@@ -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)