summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoey Hess2014-12-05 16:47:18 -0400
committerJoey Hess2014-12-05 16:48:52 -0400
commit00ab24016453c1d787b7132654f96f614d177d27 (patch)
tree0a7f2d4b5453c3bca00d10544e7cdd078aa8c894 /src
parent35648961ddbd65cd2f7901366610bfc318667a84 (diff)
fix install of debootstrap from source
Diffstat (limited to 'src')
-rw-r--r--src/Propellor/Property/Debootstrap.hs9
-rw-r--r--src/Propellor/Property/OS.hs5
2 files changed, 11 insertions, 3 deletions
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