From 00ab24016453c1d787b7132654f96f614d177d27 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 5 Dec 2014 16:47:18 -0400 Subject: fix install of debootstrap from source --- src/Propellor/Property/Debootstrap.hs | 9 +++++++-- src/Propellor/Property/OS.hs | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/Propellor/Property/Debootstrap.hs b/src/Propellor/Property/Debootstrap.hs index 35d9e472..b4fd2654 100644 --- a/src/Propellor/Property/Debootstrap.hs +++ b/src/Propellor/Property/Debootstrap.hs @@ -2,7 +2,9 @@ module Propellor.Property.Debootstrap ( Url, DebootstrapConfig(..), built, + built', installed, + sourceInstall, programPath, ) where @@ -54,11 +56,14 @@ toParams (c1 :+ c2) = toParams c1 <> toParams c2 -- Note that reverting this property does not stop any processes -- currently running in the chroot. built :: FilePath -> System -> DebootstrapConfig -> RevertableProperty -built target system@(System _ arch) config = +built = built' (toProp installed) + +built' :: Property -> FilePath -> System -> DebootstrapConfig -> RevertableProperty +built' installprop target system@(System _ arch) config = RevertableProperty setup teardown where setup = check (unpopulated target <||> ispartial) setupprop - `requires` toProp installed + `requires` installprop teardown = check (not <$> unpopulated target) teardownprop diff --git a/src/Propellor/Property/OS.hs b/src/Propellor/Property/OS.hs index 3f999e23..020d7435 100644 --- a/src/Propellor/Property/OS.hs +++ b/src/Propellor/Property/OS.hs @@ -78,7 +78,10 @@ cleanInstallOnce confirmation = check (not <$> doesFileExist flagfile) $ (Just u@(System (Ubuntu _) _)) -> debootstrap u _ -> error "os is not declared to be Debian or Ubuntu" debootstrap targetos = ensureProperty $ toProp $ - Debootstrap.built newOSDir targetos Debootstrap.DefaultConfig + -- Ignore the os setting, and install debootstrap from + -- source, since we don't know what OS we're running in yet. + Debootstrap.built' Debootstrap.sourceInstall + newOSDir targetos Debootstrap.DefaultConfig flipped = property (newOSDir ++ " moved into place") $ liftIO $ do -- First, unmount most mount points, lazily, so -- cgit v1.2.3