summaryrefslogtreecommitdiff
path: root/src/Propellor/Bootstrap.hs
AgeCommit message (Collapse)Author
2016-04-05propellor spinJoey Hess
2016-04-02Stack support.Joey Hess
* Stack support. "git config propellor.buildsystem stack" will make propellor build its config using stack. * When propellor is installed using stack, propellor --init will automatically set propellor.buildsystem=stack.
2016-03-30apt install propellor dependencies more quietlyJoey Hess
Avoids spam when most deps are installed
2016-03-30When new dependencies are added to propellor or the propellor config, try ↵Joey Hess
harder to get them installed. In particular, this makes propellor --spin work when the remote host needs to get dependencies installed in order to build the updated config. Fixes http://propellor.branchable.com/todo/problem_with_spin_after_new_dependencies_added/
2016-03-30add hs-concurrent-output to freebsd depsJoey Hess
2016-03-27add dep on concurrent-output, and re-enable -O0Joey Hess
Using the external concurrent-output library lets it be built with -O2 as is needed to get good runtime memory use. Enabling -O0 because ghc is using rather a lot more time and memory due to the new more complex types. old master branch: Linking dist/build/propellor-config/propellor-config ... 24.59user 0.97system 0:25.93elapsed 98%CPU (0avgtext+0avgdata 354612maxresident)k 1544inputs+46064outputs (0major+371244minor)pagefaults 0swaps this branch before -O0: Linking dist/build/propellor-config/propellor-config ... 25.56user 0.73system 0:26.61elapsed 98%CPU (0avgtext+0avgdata 345348maxresident)k 0inputs+43480outputs (0major+364163minor)pagefaults 0swaps this branch with -O0: Linking dist/build/propellor-config/propellor-config ... 11.91user 0.75system 0:12.97elapsed 97%CPU (0avgtext+0avgdata 237472maxresident)k 16inputs+37264outputs (0major+336166minor)pagefaults 0swaps Above benchmarks are building all source files needed by config-simple.hs. The story is rather worse for joeyconfig.hs; building it now needs over 500 mb even with -O0 :-/
2016-03-09Speed up propellor's build of itself, by asking cabal to only build the ↵Joey Hess
propellor-config binary and not all the libraries. This is a super speedup!
2016-03-08fix reversion in bootstrap spin of system with no declared OSJoey Hess
The freebsd changes caused a bootstrap of a system with no declared OS to not work, where before it was assumed to be some debian-like system where apt can be used. Brought back this assumption.
2016-03-07make Cron.runPropellor pass System to bootstrapPropellorCommandJoey Hess
Rather than having the property fail when the Host has no OS defined, I made bootstrapPropellorCommand not install deps in this situation. The cron job will (probably) still work, unless a system upgrade causes deps to be removed.
2016-03-07refactorJoey Hess
2016-03-07indentsJoey Hess
2016-03-07unnecessary parensJoey Hess
2016-03-07fix checkBinaryCommandJoey Hess
The freebsd branch made it run ./propellor --check after verifying that command fails, which is clearly wrong.
2016-03-07fix indentJoey Hess
2016-03-07FreeBSD Support including:Evan Cofsky
- Propellor bootstrapping - Basic pkg - Basic ZFS datasets and properties - Simple Poudriere configuration (regular and ZFS) - Poudriere jail creation FIXME: - Cron.hs: runPropellor needs the System, but hasn't yet gotten it. Reorganizing: - Remove FreeBSD.Process - Move ZFS up to Property - Add Info for Pkg.update/Pkg.upgrade - Move FreeBSD.md to doc so it'll show up automatically. - Merge the FreeBSD config with the other sample config. - Use Info to check Pkg updated/upgraded and Poudriere configured. - Warnings clean-up, move ZFS types to Propellor.Types. - Maintainer and license statements.
2015-12-30Bootstrap apt-get installs run with deconf noninteractive frontend.Joey Hess
Debconf was prompting because installing git needed a new libc, which prompts for service restarts..
2015-11-17Removed the (unused) dependency on quickcheck.Joey Hess
2015-10-29generalize what can be outputJoey Hess
This adds a dependency on Text, but I don't mind propellor depending on it and am somewhat surprised it doesn't already. Using Text also lets this use encodeUtf8 instead of the nasty hack it was using to go from String -> ByteString.
2015-10-28fix bad MVar use, use STMJoey Hess
I had 2 MVars both involved in the same lock, and it seemed intractable to avoid deadlocks with them. STM makes it easy. At this point, the concurrent process stuff seems to work pretty well, but I'm not 100% sure it's not got some bugs.
2015-10-10propellor spinJoey Hess
2015-09-30force copy when destination existsJoey Hess
2015-09-25propellor spinJoey Hess
2015-09-25Guard against power loss etc when building propellor, by updating the ↵Joey Hess
executable atomically.
2015-08-12Make sure that make is installed when bootstrapping propellor.Joey Hess
2015-05-27Export CommandParam, boolSystem, safeSystem and shellEscape from ↵Joey Hess
Propellor.Property.Cmd, so they are available for use in constricting your own Properties when using propellor as a library. Several imports of Utility.SafeCommand now redundant.
2015-04-29avoid checking build deps if cabal configures okJoey Hess
2015-04-29Ensure build deps are installed before building propellor in --spin and cron ↵Joey Hess
job, even if propellor was already built before, to deal with upgrades that add new dependencies.
2015-04-29propellor spinJoey Hess
2015-04-02/dev/null any error from propellor --checkJoey Hess
This includes "unknown option" from old versions of propellor..
2015-04-02Make propellor resistent to changes to shared libraries, such as libffiJoey Hess
* Make propellor resistent to changes to shared libraries, such as libffi, which might render the propellor binary unable to run. This is dealt with by checking the binary both when running propellor on a remote host, and by Cron.runPropellor. If the binary doesn't work, it will be rebuilt. * Note that since a new switch had to be added to allow testing the binary, upgrading to this version will cause a rebuild from scratch of propellor.
2015-02-28better deps installationJoey Hess
Less special cases, and will work more broadly.
2015-02-28support installing build deps using pure cabal, rather than debian packagesJoey Hess
for non-debian systems
2015-02-28avoid using the makefile when bootstrapping with --spinJoey Hess
2015-02-28Propellor now builds itself without needing the Makefile.Joey Hess