From cc8fbeda82774f6c9a223a87187408496fcd0d2b Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 22 Oct 2015 14:10:52 -0400 Subject: avoid grub install failure in chroot --- src/Propellor/Property/DiskImage.hs | 7 ++++++- src/Propellor/Property/Grub.hs | 19 ++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/Propellor/Property/DiskImage.hs b/src/Propellor/Property/DiskImage.hs index 8d503e28..3c2b2200 100644 --- a/src/Propellor/Property/DiskImage.hs +++ b/src/Propellor/Property/DiskImage.hs @@ -292,7 +292,12 @@ type Finalization = (Property NoInfo, Property NoInfo) -- | Makes grub be the boot loader of the disk image. -- TODO not implemented grubBooted :: Grub.BIOS -> Finalization -grubBooted bios = (Grub.installed bios, undefined) +grubBooted bios = (inchroot, inimg) + where + -- Need to set up device.map manually before running update-grub. + inchroot = Grub.installed' bios + + inimg = undefined noFinalization :: Finalization noFinalization = (doNothing, doNothing) diff --git a/src/Propellor/Property/Grub.hs b/src/Propellor/Property/Grub.hs index 6b763d08..ea54295b 100644 --- a/src/Propellor/Property/Grub.hs +++ b/src/Propellor/Property/Grub.hs @@ -18,14 +18,19 @@ data BIOS = PC | EFI64 | EFI32 | Coreboot | Xen -- | Installs the grub package. This does not make grub be used as the -- bootloader. -- --- This includes running update-grub, so that the grub boot menu is --- created. It will be automatically updated when kernel packages are --- installed. +-- This includes running update-grub. installed :: BIOS -> Property NoInfo -installed bios = - Apt.installed [pkg] `describe` "grub package installed" - `before` - cmdProperty "update-grub" [] +installed bios = installed' bios `before` mkConfig + +-- Run update-grub, to generate the grub boot menu. It will be +-- automatically updated when kernel packages are +-- -- installed. +mkConfig :: Property NoInfo +mkConfig = cmdProperty "update-grub" [] + +-- | Installs grub; does not run update-grub. +installed' :: BIOS -> Property NoInfo +installed' bios = Apt.installed [pkg] `describe` "grub package installed" where pkg = case bios of PC -> "grub-pc" -- cgit v1.2.3