This seems redundant, since propellor must be running to ensure such a Property, but a Property to install propellor is useful when eg, creating a disk image that itself will need to run propellor. --Joey
Should support:
- Cloning the git repo propellor is running in. (Using eg
hostChroot
) - Cloning some other git repo.
- Installing the precompiled propellor binary.
- Installing the propellor haskell library using cabal/stack/apt.
Much of this is already implemented, in non-Property form, in Propellor.Bootstrap, but will need adjustments for this new context. --Joey
Making this work when propellor is setting up a chroot is difficult, because the localdir is bind mounted into the chroot.
Hmm,
unshare
could be helpful. Run shell commands to clone the localdir insideunshare -m
, prefixed with aumount localdir
. This way, the bind mount is avoided, and it writes "under" it. Limits the commands that can be run to set up the localdir to shell commands, but bootstrap already operates on terms of shell commands so that seems ok.unshare
is linux-specific; comes in util-linux on modern linuxes.unshare
does not work in a chroot. Hmm.