propellor 2.9.0 released with [[!toggle text="these changes"]] [[!toggleable text=""" * Added basic Uwsgi module, maintained by Félix Sipma. * Add Apt.hasForeignArch. Thanks, Per Olofsson. * Improved documentation, particularly of the Propellor module. * The Propellor module no longer exports many of the things it used to, being now focused on only what's needed to write config.hs. Use Propellor.Base to get all the things exported by Propellor before. (API change) * Some renaming of instance methods, and moving of functions to more appropriate modules. (API change) * Added File.isSymlinkedTo. Thanks, Per Olofsson. * fileProperty, and properties derived from it now write the new file content via origfile.propellor-new~, instead of to a randomly named temp file. This allows them to clean up any temp file that may have been left by an interrupted run of propellor. * Added Propellor.Property.Spin, which can be used to make a host be a controller of other hosts, which will automatically spin them each time propellor is run. * Ssh.keyImported is replaced with Ssh.userKeys. (API change) The new property only gets the private key from the privdata; the public key is provided as a parameter, and so is available as Info that other properties can use. * Ssh.keyImported' is renamed to Ssh.userKeyAt, and also changed to only import the private key from the privdata. (API change) * While Ssh.keyImported and Ssh.keyImported' avoided updating existing keys, the new Ssh.userKeys and Ssh.userKeyAt properties will always update out of date key files. * Ssh.pubKey renamed to Ssh.hostPubKey. (API change) * Added --unset-unused * Fix typo: propigate → propagate. Thanks, Felix Gruber. (A minor API change) * Chroot: Converted to use a ChrootBootstrapper type class, so other ways to bootstrap chroots can easily be added in separate modules. (API change)"""]]