path: root/src/Propellor
AgeCommit message (Collapse)Author
2020-06-29Add Icinga 2 supporticinga2Nicolas Schodet
2020-05-01Apt.buildDepIn: Run build-dep command in a temporary directory, since it may ↵Joey Hess
sometimes not clean up all the files it creates.
2020-05-01Merge branch 'master' into joeyconfigJoey Hess
2020-04-06propellor spinJoey Hess
2020-04-02-v is version not vendorJoey Hess
2020-04-02automount passportJoey Hess
2020-04-02--location does not work with all versions, use -lJoey Hess
2020-04-01specify which hub as there are two connected nowJoey Hess
2020-03-05Add haskell-type-errors package on Arch LinuxRobin Munn
2020-02-25Allow building with GHC 8.8Robin Munn
2020-02-16Merge branch 'joeyconfig'Joey Hess
2020-02-16Fix typo in Arch Linux dependenciesRobin Munn
2020-02-14add my user ssh key on honeybeeJoey Hess
2020-02-14Merge branch 'joeyconfig'Joey Hess
2020-02-14add back old keys for branchableJoey Hess
Otherwise ssh servers that only know of the old keys will complain of MITM
2020-02-14remove deprecated ssh key algos from my personal configsJoey Hess
DSA is entirely deprecated, while RSA is just starting to be deprecated Generated and added new keys as necessary. Still a few stragglers on machines I can't currently access (sow and beaver).
2019-11-15Merge branch 'joeyconfig'Joey Hess
2019-11-13improve haddocksJoey Hess
particularly, remove @conf@ reference as that variable name is not visible in the haddock docs unless source is viewed. Also tightened up the language and linkified more, and fixed a typo in the name of Debootstrapped.
2019-11-13remove horizontal alignmentJoey Hess
2019-11-13minor style tweakJoey Hess
I'm not fond of the foo . bar $ v construct, not entirely sure why.
2019-11-13move Sbuild.useHostProxy -> Chroot.useHostProxySean Whitton
Now that the apt proxy is respected by Chroot.debootstrapped, users will probably want to apply useHostProxy to more chroots than just sbuild schroots. Unfortunately, we can't have a corresponding Chroot.useHostMirror property, because the only sensible way to set the chroot's apt mirror is to use the Apt.mirror pure info property, but we can't ensure properties with info. Suggested-by: Joey Hess <> Signed-off-by: Sean Whitton <>
2019-11-13Chroot.debootstrapped: respect chroot's Apt.proxy and Apt.mirrorSean Whitton
Closes: Signed-off-by: Sean Whitton <>
2019-11-13introduce propsInfoSean Whitton
Code from Joey by private e-mail.
2019-11-11Changed the ChrootBootstrapper type class's buildchroot method to take a ↵Joey Hess
Info parameter, instead of Maybe System. The System can be extracted from the Info; this also allows the chroot's Info to be introspected for eg, the apt mirror. (API change)
2019-10-08Merge branch 'master' into joeyconfigJoey Hess
2019-10-08propellor spinJoey Hess
2019-09-22changed modbus libraryJoey Hess
2019-09-21Merge branch 'joeyconfig'Joey Hess
2019-09-19replaced failed wifi dongleJoey Hess
was dropping out, appears corroded inside
2019-09-16Merge branch 'joeyconfig'Joey Hess
2019-09-13updateJoey Hess
2019-09-07propellor spinJoey Hess
2019-08-08Localdir.hasOriginUrl: Depend on Git.installed.Joey Hess
* Localdir.hasOriginUrl: Depend on Git.installed. * Localdir.hasOriginUrl: Type changed from UnixLike to DebianLike because Git.installed is not implemented for other unixes. (API change) This commit was sponsored by Denis Dzyubenko on Patreon.
2019-07-19propellor spinJoey Hess
2019-07-16Systemd.machined: Fix a bug that caused the systemd-container package to not ↵Joey Hess
be installed when used with Debian buster. jessie (oldoldstable) is the only still supported release to have a systemd from before the systemd-container package was split out.
2019-07-16update from Stable "stretch" to Stable "buster" in some examplesJoey Hess
2019-07-16Apt.update: Pass --allow-releaseinfo-change when updating Unstable or TestingJoey Hess
So that code name changes that happen in those suites during a stable release don't prevent updating the rolling suites.
2019-07-16use Hess
There's supposed to be a /debian-security path in the url, according to various sources, including I tried it both ways for both stable and testing and oldstable, and it works with and without it for both. Presumably some url rewriting is fixing it up on the back end.
2019-07-16remove /updates from security urlJoey Hess
According to Ansgar Burchardt's mail, it should look like: deb bullseye-security main Kept as it was for oldstable etc.
2019-07-12use "-security" suffix for bullseye and upJoey Hess
The suite for stable releases from bullseye on will be suffixed with "-security". Only 3 past stable releases continue to use the old unsuffixed name.
2019-07-10Apt: Debian has changed the name of the suite for testing security updates ↵Joey Hess
from testing to testing-security. The testing-security suite appeared 4 days ago. I don't know where this change is documented; wish I had known about it before the stable release, as now stable has a propellor that doesn't work with testing.
2019-07-02use ConstraintKindsJoey Hess
This is just a bit prettier code than manually needing to use constraint ~ True
2019-07-02reword to be more like ghc wordingJoey Hess
2019-07-02better explain Property <unknown>Joey Hess
I had thought it could happen when passing the wrong type to a Property constructor, but happily that is not the case. For example & osDebian Unstable False Still produces a good error: • Couldn't match expected type ‘Architecture’ with actual type ‘Bool’ So Property <unknown> only happens when too many or too few parameters are passed, eg: & osDebian Unstable X86_64 False & osDebian Unstable Before commit 14f6ae30809d8bbdb10b91cc59757e865a365df8, the former of those resulted in: • Couldn't match expected type ‘[Char] -> p0’ with actual type ‘Property (HasInfo + Debian)’ • The function ‘osDebian’ is applied to three arguments, but its type ‘DebianSuite -> Architecture -> Property (HasInfo + Debian)’ has only two Unfortunately, it's now just Property <unknown>. This is the only reversion I've identified from commit 14f6ae30809d8bbdb10b91cc59757e865a365df8. My ghc bug isn't quite explaining this problem yet, and I need to find a minimal case of it. As to the latter with too few parameters, it used to result in a massive ugly useless error. Now it is also Property <unknown>, which is an improvement.
2019-07-02use DelayErrorJoey Hess
Syrak looked at this branch and said: Cool! I'd suggest that if it's working, that's an accident! You probably want IfStuck e (DelayError err1) (DelayErrorFcf err2) rather than IfStuck e (TypeError err1) (TypeError err2)
2019-07-02Revert "Revert "custom type error messages""Joey Hess
This reverts commit 665ea0d3d9e1b0e90278fd659dee0ef8642030da.
2019-07-02Revert "custom type error messages"Joey Hess
This reverts commits 14f6ae30809d8bbdb10b91cc59757e865a365df8 de21ef26861db458b0dfb0212cf501f9f8ed459b e20662e6a8881db55394a6366be17ca4e509bc2a Until this bug is resolved, these custom error types hide more basic errors.
2019-07-01fix build with ghc 8.0.1Joey Hess
Something in commit 14f6ae30809d8bbdb10b91cc59757e865a365df8 ghc 8.0.1 in a few cases unable to infer types when ensureProperty or tightenTargets is used. Newer versions of ghc, including 8.4.4 were able to infer these types. Perhaps it tries harder, or an inference bug was fixed. Seemed best to work around the problem to keep supporting ghc 8.0.1 and the current Debian stable. Since only 3 uses out of hundreds in propellor were affected, it's pretty unlikely it will affect user's properties, but I mentioned in in the changelog anyway. Hopefully a new Debian release will soon mean I no longer need to support 8.0.1, but the code changes also generally made it clearer and easier to read. And, I made custom type errors suggesting adding annotations to help any user who does encounter it. (Included in commit de21ef26861db458b0dfb0212cf501f9f8ed459b; may also help with other cases than an old ghc.)
2019-07-01optionally use type-errors to detect stucknessJoey Hess
Use the type-errors library to detect when the type checker gets stuck unable to reduce type-level operations on MetaTypes, and avoid displaying massive error messages in such a case. But, since type-errors is a new library not available in eg Debian yet, added a WithTypeErrors build flag. When the library is not available, cabal will automatically disable that build flag, and it will build without the type-errors library. This is most often used when combining properties of different types. If the MetaTypes don't have an OS in common, the error message used to be "Property " followed by pages of MetaTypes operations. Now it looks like this: • Cannot combine Properties: Property <unknown> Property HasInfo + Debian + Buntish + ArchLinux + FreeBSD (Property <unknown> is often due to a partially applied Property constructor, or due to passing the wrong type to a Property constructor.) Also it's used in ensureProperty to detect a case where the outer MetaTypes need to be inferred in order to check if the inner MetaTypes match, but the type checker is unable to infer it: • ensureProperty outer Property type is not able to be inferred here. Consider adding a type annotation. • When checking the inferred type writeConfig :: forall (outer :: [Propellor.Types.MetaTypes.MetaType]) t. And it's used in tightenTargets to detect when ghc is unable to infer the desired type of Property: • Unable to infer desired Property type in this use of tightenTargets. Consider adding a type annotation. • When checking the inferred type mk :: forall (tightened :: [Propellor.Types.MetaTypes.MetaType]).
2019-07-01custom type error messagesJoey Hess
* Avoid displaying an excessive amount of type error messages when many properties have been combined in a props list. * Added custom type error messages when Properties don't combine due to conflicting metatypes. * Added custom type error messages for ensureProperty and tightenTargets. * ensureProperty: The constraints have been simplified to EnsurePropertyAllowed. (API change) * ensureProperty: The contraints have been simplified to TightenTargetsAllowed. (API change) * CheckCombinable generates a Bool. (API change) This commit was sponsored by Jake Vosloo on Patreon.