summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-07-29propellor spinJoey Hess
2018-07-13updateJoey Hess
2018-07-13updatesJoey Hess
2018-07-11remove build-time warning for dockerJoey Hess
Propellor.Cmdline imports it, which made propellor compilation warn.
2018-07-11remove debug printJoey Hess
2018-07-11propellor spinJoey Hess
2018-07-11remove unused valuesJoey Hess
2018-07-11propellor spinJoey Hess
2018-07-11Merge branch 'master' into joeyconfigJoey Hess
2018-07-11two unmaintained modulesJoey Hess
2018-06-24refactorJoey Hess
could use zoneFileString for other things eg SSHFP. I have not yet, because AFAICS, SSHFP already splits the key up in a different way and while using zoneFileString should be ok, I'd need to test it..
2018-06-24update rValue of Dns TXT record typersiddharth
The TXT record's string is split into strings of length <= 255 characters and these strings are enclosed inside a pair of parentheses. Signed-off-by: rsiddharth <s@ricketyspace.net>
2018-06-16Grub.configured uses ConfFile.containsShellSettingSean Whitton
This implies the following behavioural changes: (1) Grub.configured will now change the value set by the first line it finds that sets the value of its key, if one exists. Previously, Grub.configured would unconditionally append to /etc/default/grub, unless the key=value pair was already present. (2) Grub.configured will comment out any further lines setting the value of its key found further down the file. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2018-06-16add EtcDefault.setSean Whitton
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2018-06-16add ConfFile.containsShellSetting & ConfFile.lacksShellSettingSean Whitton
Code adapted from Grub.configured. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2018-06-03remove wheezy referenceJoey Hess
2018-06-01note about fixJoey Hess
2018-05-29propellor spinJoey Hess
2018-05-29fix buildJoey Hess
2018-05-18use git verify-commitJoey Hess
Use git verify-commit to verify gpg signatures, rather than the old method of parsing git log output. These two methods should always have the same result. Note that git verify-commit allows signatures with unknown validity, the same as git log's "U" output which was accepted. So any key in the gpg keyring is allowed to sign the commit. Propellor provides gpg with a keyring containing only the allowed keys. Needs git 2.0, which is in even debian oldstable. This commit was sponsored by Ewen McNeill on Patreon.
2018-05-18modernized and simplified the MetaTypes implementationJoey Hess
now that compatability with ghc 7 is no longer needed. Data.Type.Bool contains effectively the same stuff that was implemented here, so removed my code. Tried to use Data.Type.Equality instead of my EqT, but it seems to be some other type of (type level) equality, and didn't compile. Instead went with the simpler EqT implementation that newer ghc versions allow. The rest of the changes are simply better syntax for defining type families. And upon using that syntax, ghc noticed that `type family a + b` does not have kind "ab" like I wrote before, but is kind *. Tested on debian stable with ghc 8.0.1. This commit was sponsored by John Pellman on Patreon.
2018-05-17Merge branch 'joeyconfig'Joey Hess
2018-05-17Apt.installedBackport replaced with Apt.backportInstalledSean Whitton
Apt.installedBackport would do this: apt-get install -t stretch-backports foo bar Apt.backportInstalled does this: apt-get install foo/stretch-backports bar/stretch-backports The Apt.installedBackport behaviour can install the dependencies of foo and bar from stretch-backports even when the versions in stretch will satisfy the dependencies of the backports of foo and bar. So this property can result in very many more backports being installed on the host when intended. But the number of installed backports should always be minimised. Worse, whether this happens is highly dependent on the system state, and the order in which other properties get ensured. For example, & Apt.installed ["dgit"] & Apt.installedBackport ["dgit"] will install only dgit from stretch-backports, but unless debhelper and devscripts happen to already be installed, & Apt.installedBackport ["dgit"] & Apt.installed ["dgit"] will install dgit, debhelper, devscripts and maybe more from backports. This is surprising, difficult to debug, and breaks the expectation that when the order in which properties are ensured is not specified with connectives like `requires` and `before`, ensuring them in any order will produce the same result. Property renamed because user configs should not silently break, as they would if they did not list dependencies that must be installed from stable-backports. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2018-05-17Restic.installed: stop trying to install a backport on jessieSean Whitton
No such backport exists in the archive. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2018-05-09propellor spinJoey Hess
2018-05-07propellor spinJoey Hess
2018-05-06Merge remote-tracking branch 'felix/unbound' into joeyconfigJoey Hess
2018-05-05propellor spinJoey Hess
2018-05-05propellor spinJoey Hess
2018-05-05Unbound: move haddock comment to cachingDnsServerFélix Sipma
2018-05-05propellor spinJoey Hess
2018-05-04propellor spinJoey Hess
2018-05-04updateJoey Hess
2018-05-04Unbound: add a warning note for CNAMEFélix Sipma
2018-05-04Unbound: handle missing recordsFélix Sipma
2018-05-04Unbound: simplify existing recordsFélix Sipma
2018-05-04Unbound: handle SRV recordFélix Sipma
2018-05-03propellor spinJoey Hess
2018-05-03Merge branch 'master' into joeyconfigJoey Hess
2018-05-03Update shim each time propellor is run in a container, to deal with library ↵Joey Hess
version changes. Surprised this didn't come up before, since propellor was run against progressively old versions of libraries when propelling eg, a chroot. It finally broke on an arm box, where libm got updated to a new version and propellor used a symbol from the new version. The comment says that propellor may be running from an existing shim in which case it's reused. That could be a nested chroot or other container, or perhaps propellor was deployed via a precompiled tarball which is built using a shim. The code used to use "checkAlreadyShimmed shim" which I don't see how it deals with either of those scenarios. Changed to "checkAlreadyShimmed propellorbin", which I think will deal with them, but I've not tested such scenarios. Added code to delete old versions of libraries out of the shim directory to avoid masses of old ones piling up over time. Property.Chroot sets up the shim directory and then bind mounts it into the chroot. To avoid deleting the source of a bind mount, made this only delete files in the shim directory, but not the shim directory itself.
2018-05-03propellor spinJoey Hess
2018-05-02make Schroot.overlaysInTmpfs revertableSean Whitton
Useful when a build fails on a tmpfs (usually a package's test suite). Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2018-05-02updateJoey Hess
2018-04-30Revert "Added dependency on concurrent-output; removed embedded copy."Joey Hess
This reverts commit 02eca2ae4cf51d8e83d94d8359e15ac053451109. This seems to have broken propellor badly, in testing I'm seeing it crash at the end of a run with "thread blocked indefinitely in an STM transaction" and also during the run it printed out some odd output like: apache2: apache2: dummy IN SSHFP 4 1 35df80973f5877e4041f1b70947385eb2f6a0822 dummy IN SSHFP 4 2 3a0bb426e76eebc5c56e3b0f1428aa9d18539e9621bf8f9e3b7f56a4e7d81c85 Which seems like it might be output of commands that propellor is supposed to be reading? Seems likely that there's a bug or two that have crept into then concurrent-output library since the version embedded in propellor.
2018-04-30Merge branch 'master' into joeyconfigJoey Hess
2018-04-30fix broken SemigroupMonoid transition <<loop>>Joey Hess
Turns out that with ghc 8.2.2, the instructions given on the page don't work. And the cppless variant that I had compiles, but into effectively mappend = mappend so it loops. The only way I can see to make it work without cpp is to use mappend = (Sem.<>) which is ugly and a land mine waiting to explode if someone changes it to a nicer mappend = (<>) with a newer version of ghc which will compile it and work ok, while breaking it with 8.2.2. Sigh. I posted to haskell-cafe about this.
2018-04-30Merge branch 'master' into joeyconfigJoey Hess
2018-04-30fix build with ghc 8.2Joey Hess
Seems newer ghc can figure out that metatypes is SingI, but not this one?
2018-04-29Merge branch 'master' into joeyconfigJoey Hess
2018-04-29propellor spinJoey Hess