path: root/src
AgeCommit message (Collapse)Author
2017-07-13rename src/config.hsJoey Hess
This works around an infelicity in stack; it complains when there are both a toplevel config.hs and a src/config.hs, despite that being fine with cabal.
2017-07-13fix typo in build pathJoey Hess
2017-07-13Updated stack config to lts-8.22.Joey Hess
2017-07-13use stack build --dry-run to check if deps are installedJoey Hess
The system might have stack installed, so stack --version would succeed, but need stack setup to be run to get a working ghc. This will fail if stack is not installed, or if stack setup needs to be run. It does not fail when haskell libraries are not installed, but stack build will install those anyway, so that's ok.
2017-07-13export BuilderJoey Hess
2017-07-13Merge branch 'joeyconfig'Joey Hess
2017-07-13finally really fixed HEAD problemJoey Hess
My first try with a pipe was the right approach, and was almost right, except I forgot to close the write end of the pipe, and so it was inherited by the forked process, leading to deadlock.
2017-07-13trying the pipe trick againJoey Hess
With some small changes, and debugging.
2017-07-13Revert "disable buffering earlier"Joey Hess
This reverts commit 632137836b39462883483a621f9dd696ce1d73cc. Still failing :( Seems that disabling buffering is not the solution.
2017-07-13disable buffering earlierJoey Hess
The "fatal: Couldn't find remote ref HEAD" persists, and is intermittent so hard to be sure but it seemed that disabling buffering earlier avoided it. Now done first thing on start. I was not able to find anything that reads from stdin other than getMarked, but perhaps there is something..
2017-07-12add bootstrapWith property to support stack and moreJoey Hess
* Hosts can be configured to build propellor using stack, by adding a property: & bootstrapWith (Robustly Stack) * Hosts can be configured to build propellor using cabal, but using only packages installed from the operating system. This will work on eg Debian: & bootstrapWith OSOnly propellor build its config using stack. (This does not affect how propellor is bootstrapped on a host by "propellor --spin host".) This has not yet been tested at all! But should probably work fine. This is based on earlier work by Arnaud Bailly, who made Propellor.Bootstrap use stack without parameterization. In Arnaud's patch, stack was installed using wget, but that only worked on linux-x86_64 and was insecure. I instead chose to use the distribution packages of stack, like is done for cabal. Debian stack has haskell-stack now, and it's getting into many distributions. This commit was sponsored by Francois Marier on Patreon.
2017-07-10Merge remote-tracking branch 'felix/system-group'Joey Hess
2017-07-10User: add systemGroup and use it for systemAccountFor'Félix Sipma
2017-07-10Merge remote-tracking branch 'felix/restic'Joey Hess
2017-07-06Added reservedSpacePercentage to the PartSpec EDSL.Joey Hess
2017-07-05Added Propellor.Property.FreeDesktop module.Joey Hess
This commit was sponsored by Trenton Cronholm on Patreon.
2017-07-05fix chroot info accessJoey Hess
2017-07-05DiskImage: Removed grubBootedJoey Hess
Properties that used to need it as a parameter now look at Info about the bootloader that is installed in the chroot that the disk image is created from. (API change) This is a simplication, and avoids the user needing to repeat themselves in the propellor config, thus avoiding mistakes. When no boot loader is installed, or multiple different ones are, disk image creation will fail, which seems reasonable. This commit was sponsored by Jake Vosloo on Patreon.
2017-07-05Image.grubBooted no longer takes a BIOS parameterJoey Hess
* DiskImage.grubBooted no longer takes a BIOS parameter, and no longer implicitly adds Grub.installed to the properties of the disk image. If you used DiskImage.grubBooted, you'll need to update your propellor configuration, removing the BIOS parameter from grubBooted and adding a Grub.installed property to the disk image, eg: & Grub.installed PC (API change) * Grub.installed: Avoid running update-grub when used in a chroot, since it will get confused. * DiskImage.Finalization: Simplified this type since it does not need to be used to install packages anymore. (API change) The advantage of doing this comes when using hostChroot with imageBuilt, since the Host then has its Grub.installed property explicitly listed so propellor knows about it when otherwise deploying that host. Also, it simplifies the quite complex imageBuilt parameters. This commit was sponsored by Ewen McNeill.
2017-07-05add XFCE.networkManagerJoey Hess
2017-07-05Added File.checkOverwrite.Joey Hess
This commit was sponsored by Ethan Aubin.
2017-07-05File.isCopyOf: Fix bug that prevented this property from working when the ↵Joey Hess
destination file did not yet exist. This commit was sponsored by andrea rota.
2017-07-05add Overwrite configurationJoey Hess
2017-07-05avoid overwriting existing fileJoey Hess
2017-07-05rename confusing f' to srcJoey Hess
f' normally means a later version of f
2017-07-05less wonky (and working) implementation of defaultPanelForJoey Hess
2017-07-05propellor spinJoey Hess
2017-07-05XFCE and applyPath propertiesJoey Hess
* Propellor.Property.XFCE added with some useful properties for the desktop environment. * Added File.applyPath property. This commit was sponsored by Riku Voipio.
2017-07-05LightDM.autoLogin: Make it require LightDM.installedJoey Hess
(minor API change as the type changed)
2017-07-05avoid buffering container chain outputJoey Hess
When provisioning a container, output was buffered until the whole process was done; now output will be displayed immediately. I know this didn't used to be a problem. I belive it was introduced by accident when propellor started using concurrent-output. I know I've seen it for a while and never was bothered enough to get to the bottom of it; apparently "a while" was longer than I thought. Also refactored code to do with chain provisioning to all be in Propellor.Engine and avoided some duplication. This commit was sponsored by Anthony DeRobertis on Patreon.
2017-07-05Revert "speed up chain output displaying"Joey Hess
This reverts commit c59ce983999ddbfe6cb8b27e4f376b5c37d7f853. That was wrong because only the *last* line of chain output is a Result. It could be that a previous line is able to be read as a Result, and the commit would make processing bail out at that point.
2017-07-05propellor spinJoey Hess
2017-07-05speed up chain output displayingJoey Hess
Avoid needing to wait for a subsequent line before displaying the previous line.
2017-07-04Bootstrap.bootstrappedFrom: Avoid doing anything when not run in a chroot.Joey Hess
This way, when a disk image is built using this property, and booted up, running propellor won't try to ensure this property again. This commit was sponsored by Jeff Goeke-Smith on Patreon.
2017-07-04Bootstrap.bootstrappedFrom: Fix bug that caused propellor to only be built ↵Joey Hess
from the bootstrapped config the first time. When the config changes, the bootstrapped propellor needs to get rebuilt. This commit was sponsored by Fernando Jimenez on Patreon.
2017-07-04Diskimage.imageExists: Align disk image size to multiple of 4096 sector sizeJoey Hess
Since some programs (such as VBoxManage convertdd) refuse to operate on disk images not aligned to a sector size. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2017-07-04Bootstrap.clonedFrom: Fix bug that broke copying .git/config into chroot.Joey Hess
2017-07-02make joey own checkoutJoey Hess
I have a cron job updating a file in there..
2017-06-28describe Linode.serialGrubSean Whitton
Signed-off-by: Sean Whitton <>
2017-06-28Apache.httpsVirtualHost' must create ssl/hn/ dir earlierSean Whitton
It turns out that IncludeOptional will error out if it is passed non-wildcard directories that do not exist. Signed-off-by: Sean Whitton <>
2017-06-20User.hasInsecurePassword makes sure shadow passwords are enabledJoey Hess
So if the insecure password is later changed, the new password won't be exposed.
2017-06-18my pipe trick didn't work; fallback to NoBufferingJoey Hess
Not sure what the problem was, but it hung. Also though, I noticed that stdin was still open when git fetch was run, so if git fetch itself decided to read from stdin, it would mess up the protocol forwarding. While git fetch should never read from stdin, that was reason enough to fall back to plan B.
2017-06-18Fix bug that sometimes made --spin fail with "fatal: Couldn't find remote ↵Joey Hess
ref HEAD" Tricky stdin buffering problem. An easier fix would have been: hSetBuffering stdin NoBuffering But that approach is less robust; even with NoBuffering, anything that uses hLookAhead causes 1 byte of buffering. And, any reads from stdin before hSetBuffering would still cause the problem. Instead, I used a bigger hammer that will always work. It involves a bit more CPU work, but this is data that is already being fed through ssh; copying it one more time won't cause a measurable performance impact. This commit was sponsored by Jack Hill on Patreon.
2017-06-18remove unnecessary binary mode settingJoey Hess
This is using ByteString, so the handle IO discipline is irrelevant.
2017-06-18Display error and warning messages to stderr, not stdout.Joey Hess
2017-06-17use stretch in debian stable examplesJoey Hess
2017-05-20propellor spinJoey Hess
2017-05-20propellor spinJoey Hess
2017-05-16merge fixes from git-annexJoey Hess
2017-05-15Merge branch 'master' into joeyconfigJoey Hess