path: root/propellor.cabal
AgeCommit message (Collapse)Author
2019-07-17releasing package propellor version 5.9.1Joey Hess
2019-07-02releasing package propellor version 5.9.0Joey Hess
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-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-01Merge branch 'master' into joeyconfigJoey Hess
2019-07-01remove no longer needed -fno-warn-redundant-constraintsJoey Hess
Commit b1038365960693a013d7026f25d026a1fd098062 suggested that it be moved to per-module when support for ghc 7 was dropped, so I removed it from the cabal file, but there were no build warnings without it so did not need to add it to any modules. (Tested only with ghc 8.4.4)
2019-04-26releasing package propellor version 5.8.0Joey Hess
2019-04-05releasing package propellor version 5.7.0Joey Hess
2019-04-03rename Propellor.Property.{PropellorRepo -> Localdir}Sean Whitton
This is to accommodate a new property in that module which is about /usr/local/propellor, but not only about the git repo there. Signed-off-by: Sean Whitton <>
2019-01-20releasing package propellor version 5.6.1Joey Hess
2019-01-18releasing package propellor version 5.6.0Joey Hess
2018-12-30Merged Utility changes from git-annexJoey Hess
Last done in May 2017..
2018-11-05start work on libvirt moduleSean Whitton
2018-10-13name bikesheddingJoey Hess
2018-10-08Add a DirectBoot bootloader type.David Bremner
This doesn't actually do anything to the chroot in question, just marks it as needing to be boot directly, e.g. by some external kernel and initrd.
2018-08-20Removed HostingProvider.CloudatCost module as it lacks a maintainerJoey Hess
(If anyone would like to maintain it, send a patch adding it back.) (API change)
2018-08-19Split mailname property out of Hostname.saneJoey Hess
Since bad mailname guesses can lead to ugly surprises. (API change) Kept it in the Hostname module for easy discoverability, and similar to Hostname.searchDomain it sets a value based on the hostname so makes sense to keep it in that module. Didn't implement the mailname equivilant of Hostname.setTo, because it's trivial to write the mailname file with a custom value if desired. This commit was sponsored by John Pellman on Patreon.
2018-08-08releasing package propellor version 5.4.1Joey Hess
2018-06-16add EtcDefault.setSean Whitton
Signed-off-by: Sean Whitton <>
2018-05-17releasing package propellor version 5.4.0Joey Hess
2018-05-09releasing package propellor version 5.3.6Joey 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-23Added dependency on concurrent-output; removed embedded copy.Joey Hess
Removed deps on transformers, text, stm. Updated debian/control and Propellor.Bootstrap accordingly. Sorted the lists of deps to make it easier to keep them in sync.
2018-04-23semigroup monoid change fallout; drop ghc 7 supportJoey Hess
Fix build with ghc 8.4, which broke due to the Semigroup Monoid change. See Dropped support for building propellor with ghc 7 (as in debian oldstable), to avoid needing to depend on the semigroups transitional package, but also because it's just too old to be worth supporting. If we indeed drop ghc 7 support entirely, some code to support "jessie" can be removed; concurrent-output can be de-embedded, and the Singletons code can be simplified. This commit was sponsored by Jack Hill on Patreon.
2018-04-22few more cabal executable build tweaksJoey Hess
2018-04-22remove -O0 for propellor-configJoey Hess
It's only needed for compiling the internals of the propellor library, which is no longer part of building this.
2018-04-22fix cabal check warningJoey Hess
2018-04-22releasing package propellor version 5.3.5Joey Hess
2018-04-22separate Hs-Source-Dirs for binariesJoey Hess
This is a trick I only just learned about, see Significantly increased propellor build speed when your config.hs is in a fork of the propellor repository, by avoiding redundant builds of propellor library. Also avoids needing to list all the build deps 3 times. Also avoids cabal 2.x wanting every module to be listed 3 times. Note that the bulk of wrapper.hs had to move into the propellor library, since that code depended on stuff not exposed by the library. This commit was sponsored by Henrik Riomar on Patreon.
2018-03-21releasing package propellor version 5.3.4Joey Hess
2018-02-26releasing package propellor version 5.3.3Joey Hess
2018-02-23rename Dhparams to OpensslFélix Sipma
2018-02-23add Propellor.Property.DhparamsFélix Sipma
2018-02-18releasing package propellor version 5.3.2Joey Hess
2018-02-11add Propellor.Property.AtomicJoey Hess
Added Propellor.Property.Atomic, which can make a non-atomic property that operates on a directory into an atomic property. Also has a generic version that could be used for things other than directories that can be updated atomically. (Inspired by Vaibhav Sagar's talk on Functional Devops in a Dysfunctional World at LCA 2018.) This commit was sponsored by Fernando Jimenez on Patreon.
2018-02-04Last release mistakenly contained my personal branch not master.Joey Hess
* Last release mistakenly contained my personal branch not master. * contrib/post-merge-hook documentation updated to recommend also using it as a post-checkout hook, to avoid such problems.
2018-02-01releasing package propellor version 5.3.0Joey Hess
2018-02-01Laptop: New module, starting with powertopAutoTuneOnBoot.Joey Hess
This commit was sponsored by Brock Spratlen on Patreon.
2017-12-30installerJoey Hess
Added Propellor.Property.Installer modules, which can be used to create bootable installer disk images, which then run propellor to install a system. This code was extracted from the demo I gave at my talk at DebConf 2017, from the secret-project repository. That repository was AGPL licensed. I hereby relicense the code committed here under the same 2-clause BSD license as the rest of propellor. Changes from secret-project: Generalized UserInput to a type class, and added a lot more documentation and examples. This commit was sponsored by Brock Spratlen on Patreon.
2017-12-20disk partition alignmentJoey Hess
Cheap flash drives need partitions aligned to 4 MiB in order to not be slow (and to avoid extra writes). <> And at least 1 MiB alignment is generally a good idea, and most people seem to think 4 MiB is for all drives. I noticed that Parted.partitioned does not do that; the first partition started at an offset of 1 MB, and subsequent partitions from where it ends. (The 1 MB offset came from the PartedVal PartSize instance, and note that it was not 1 MiB.) * Parted: Add an Alignment parameter. (API change) A good default to use is safeAlignment, which is 4MiB, well suited for inexpensive flash drives, and fine for other disks too. Previously, a very non-optimial 1MB (not 1MiB) alignment had been used. * DiskImage: Use safeAlignment. It didn't seem worth making the alignment configurable here. Alignment is implemented by offsetting the first partition's start position so it's aligned (making sure to leave room for the partition table). Each partition is then extended as needed so the next partition will start properly aligned. Note that parted rejects partition tables that don't fit in cylinder bounderies. Before, propellor let parted deal with the fine details of layout, so that was not a problem. Now it's possible to set some wacky Alignment not divisible by 512, or use Byte sizes for partitions and create a partition table that parted rejects. But, using safeAlignment and MegaBytes should always be safe. Also, this fixes a rounding bug in Parted.calcPartTable. It was rounding up to the nearest MegaByte when allocating remaining disk space, so returned partition table that was actually larger than the disk size. This commit was sponsored by an anonymous bitcoiner.
2017-11-23releasing package propellor version 5.1.0Joey Hess
2017-11-17Service: Avoid starting services when noServices is used.Joey Hess
Reconsidered making services never run inside chroots, that seemed too potentially limiting. Using Info rather than checking policy-rc.d because it will also work outside of debian, but more because policy-rc.d has an extremely complicated interface and I didn't want to deal with it. This commit was sponsored by Jochen Bartl on Patreon.
2017-11-16Uboot: New module.Joey Hess
Installing u-boot to the boot sector is not needed by some boards (my CubieTruck boots without it), but may be by others. Tricky part was making u-boot be written to a disk image when building one. This commit was sponsored by Jake Vosloo on Patreon.
2017-11-16Machine: New moduleJoey Hess
Machine-specific properties for ARM boards are being collected here See and and Currently has 2 arm boards that I use. This commit was sponsored by Anthony DeRobertis on Patreon.
2017-11-16flash-kernel supportJoey Hess
Can be used to create disk images for arm boards using flash-kernel. This commit was sponsored by Ewen McNeill.
2017-11-16Debootstrap.built now supports bootstrapping chroots for foreign OS'sJoey Hess
This commit was sponsored by Ethan Aubin.
2017-10-25releasing package propellor version 4.9.0Joey Hess
2017-09-25releasing package propellor version 4.8.1Joey Hess
2017-09-25releasing package propellor version 4.8.0Joey Hess