propellor 3.1.0 released with [[!toggle text="these changes"]] [[!toggleable text=""" * Architecture changed from String to an ADT. (API Change) Transition guide: Change "amd64" to X86\_64, "i386" to X86\_32, "armel" to ARMEL, etc. Thanks, Félix Sipma. * The Debian data type now includes a DebianKernel. (API Change) This won't affect most config.hs, as osDebian defaults to Linux. Added osDebian' can be used to specify a different kernel. Thanks, Félix Sipma. * Improve exception handling. A property that threw a non-IOException used to stop the whole propellor run. Now, all non-async exceptions only make the property that threw them fail. (Implicit API change) * Added StopPropellorException and stopPropellorMessage which can be used in the unusual case where a failure of one property should stop propellor from trying to ensure any other properties. * tryPropellor returns Either SomeException instead of Either IOException (API change) * Switch letsencrypt to certbot package name. * Sbuild: Add keyringInsecurelyGenerated which is useful on throwaway build VMs. Thanks, Sean Whitton * Added Propellor.Property.SiteSpecific.Exoscale. Thanks, Sean Whitton * Property.Reboot: Added toDistroKernel and toKernelNewerThan. Thanks, Sean Whitton * Added ConfFile.hasIniSection. Thanks, Félix Sipma. * Apt.install: When asked to install a package that apt does not know about, it used to incorrectly succeed. Now it will fail. * Property.Firejail: New module. Thanks, Sean Whitton * File: Write privdata files in binary rather than text, which avoids failure when they do not contain valid unicode. Thanks, Andrew Schurman * Generalized fileProperty can now operate on a file as either a series of lines, or a ByteString. * [ Sean Whitton ] * New info property Schroot.useOverlays to indicate whether you want schroots set up by propellor to use the Linux kernel's OverlayFS. * Schroot.overlaysInTmpfs sets Schroot.useOverlays info property. * If you have indicated that you want schroots to use OverlayFS and the current kernel does not support it, Sbuild.built will attempt to reboot into a kernel that does, or fail if it can't find one. * Sbuild.built will no longer add duplicate `aliases=UNRELEASED,sid...` lines to more than one schroot config. It will not remove any such lines that the previous version of propellor added, though. * Sbuild.keypairGenerated works around Debian bug #792100 by creating the directory /root/.gnupg in advance. * Ccache.hasCache now sets the setgid bit on the cache directory, as ccache requires."""]]