summaryrefslogtreecommitdiff
path: root/src/Propellor/Property
diff options
context:
space:
mode:
authorJoey Hess2017-11-17 13:55:49 -0400
committerJoey Hess2017-11-17 13:55:49 -0400
commita8dacb76dec5cfa9514d7638987ca52b675c9251 (patch)
treecdc8938331d5e725ba8cc937fdfd4b744ddfb870 /src/Propellor/Property
parent04eaf8e8e5cdcababb3b783abe416821a91c8e8e (diff)
clean up qemu emulation binary when finalizing disk image
This commit was sponsored by Denis Dzyubenko on Patreon.
Diffstat (limited to 'src/Propellor/Property')
-rw-r--r--src/Propellor/Property/DiskImage.hs5
-rw-r--r--src/Propellor/Property/Qemu.hs8
2 files changed, 9 insertions, 4 deletions
diff --git a/src/Propellor/Property/DiskImage.hs b/src/Propellor/Property/DiskImage.hs
index e9c9d0d4..69a4b188 100644
--- a/src/Propellor/Property/DiskImage.hs
+++ b/src/Propellor/Property/DiskImage.hs
@@ -27,6 +27,7 @@ import qualified Propellor.Property.Chroot as Chroot
import qualified Propellor.Property.Grub as Grub
import qualified Propellor.Property.File as File
import qualified Propellor.Property.Apt as Apt
+import qualified Propellor.Property.Qemu as Qemu
import Propellor.Property.Parted
import Propellor.Property.Fstab (SwapPartition(..), genFstab)
import Propellor.Property.Partition
@@ -368,7 +369,9 @@ imageFinalized final img mnts mntopts devs (PartTable _ parts) =
liftIO $ mountall top
liftIO $ writefstab top
liftIO $ allowservices top
- ensureProperty w $ final img top devs
+ ensureProperty w $
+ Qemu.removeHostEmulationBinary top
+ `before` final img top devs
-- Ordered lexographically by mount point, so / comes before /usr
-- comes before /usr/local
diff --git a/src/Propellor/Property/Qemu.hs b/src/Propellor/Property/Qemu.hs
index 4d9e8b1f..f204a0e1 100644
--- a/src/Propellor/Property/Qemu.hs
+++ b/src/Propellor/Property/Qemu.hs
@@ -19,9 +19,11 @@ foreignBinariesEmulated = (setup <!> cleanup)
--
-- Note that removing the binary will prevent using the chroot on the host
-- system.
-removeHostEmulationBinary :: Property DebianLike
-removeHostEmulationBinary = tightenTargets $
- scriptProperty ["rm -f /usr/bin/qemu-*-static"]
+--
+-- The FilePath is the path to the top of the chroot.
+removeHostEmulationBinary :: FilePath -> Property Linux
+removeHostEmulationBinary top = tightenTargets $
+ scriptProperty ["rm -f " ++ top ++ "/usr/bin/qemu-*-static"]
`assume` MadeChange
-- | Check if the given System supports an Architecture.