diff options
| author | Joey Hess <joeyh@joeyh.name> | 2017-11-29 11:53:58 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2017-11-29 11:53:58 -0400 |
| commit | c485aba3663333b5518c86b68b12d92ed51def01 (patch) | |
| tree | 1330786f8073bf554f6324641632ea36db8a2856 | |
| parent | 578ebbf861a074c33050f4fb927f6f88d442947d (diff) | |
bootstrappedFrom: Set up local privdata file.
Avoid needing to --spin host deployed from disk image to let its propellor
access its privdata.
This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
| l--------- | config.hs | 2 | ||||
| -rw-r--r-- | debian/changelog | 6 | ||||
| -rw-r--r-- | doc/todo/privdata_propigation_into_diskimages.mdwn | 2 | ||||
| -rw-r--r-- | privdata/relocate | 1 | ||||
| -rw-r--r-- | src/Propellor/Property/Bootstrap.hs | 14 |
5 files changed, 23 insertions, 2 deletions
@@ -1 +1 @@ -config-simple.hs
\ No newline at end of file +joeyconfig.hs
\ No newline at end of file diff --git a/debian/changelog b/debian/changelog index ef3e66ac..b738f874 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +propellor (5.1.1) UNRELEASED; urgency=medium + + * bootstrappedFrom: Set up local privdata file. + + -- Joey Hess <id@joeyh.name> Wed, 29 Nov 2017 11:45:08 -0400 + propellor (5.1.0) unstable; urgency=medium [ Sean Whitton ] diff --git a/doc/todo/privdata_propigation_into_diskimages.mdwn b/doc/todo/privdata_propigation_into_diskimages.mdwn index 1ffd26d0..80a42d23 100644 --- a/doc/todo/privdata_propigation_into_diskimages.mdwn +++ b/doc/todo/privdata_propigation_into_diskimages.mdwn @@ -2,3 +2,5 @@ When building a disk image with propellor bootstrapped in it, the decrypted privdata file is not written, so propellor can't be run on the booted system without first doing a propellor --spin from the dev laptop. Not a big problem but worth fixing some time. --[[Joey]] + +> [[fixed|done]] --[[Joey]] diff --git a/privdata/relocate b/privdata/relocate new file mode 100644 index 00000000..271692d8 --- /dev/null +++ b/privdata/relocate @@ -0,0 +1 @@ +.joeyconfig diff --git a/src/Propellor/Property/Bootstrap.hs b/src/Propellor/Property/Bootstrap.hs index f0759dae..25a6af33 100644 --- a/src/Propellor/Property/Bootstrap.hs +++ b/src/Propellor/Property/Bootstrap.hs @@ -14,6 +14,8 @@ import Propellor.Base import Propellor.Bootstrap import Propellor.Types.Info import Propellor.Property.Chroot +import Propellor.PrivData.Paths +import Utility.FileMode import Data.List import qualified Data.ByteString as B @@ -63,8 +65,18 @@ bootstrappedFrom reposource = check inChroot $ go :: Property Linux go = property "Propellor bootstrapped" $ do system <- getOS + -- gets Host value representing the chroot this is run in + chroothost <- ask + -- load privdata from outside the chroot, and filter + -- to only the privdata needed inside the chroot. + privdata <- liftIO $ filterPrivData chroothost + <$> readPrivDataFile privDataLocal bootstrapper <- getBootstrapper - assumeChange $ exposeTrueLocaldir $ const $ + assumeChange $ exposeTrueLocaldir $ const $ do + liftIO $ createDirectoryIfMissing True $ + takeDirectory privDataLocal + liftIO $ writeFileProtected privDataLocal $ + show privdata runShellCommand $ buildShellCommand [ "cd " ++ localdir , checkDepsCommand bootstrapper system |
