| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
|
|
|
|
|
|
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.
|
|
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.
|
|
Fix build with ghc 8.4, which broke due to the Semigroup Monoid change.
See https://prime.haskell.org/wiki/Libraries/Proposals/SemigroupMonoid
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.
|
|
|
|
It's only needed for compiling the internals of the propellor library,
which is no longer part of building this.
|
|
|
|
|
|
This is a trick I only just learned about, see
https://stackoverflow.com/questions/6711151/how-to-avoid-recompiling-in-this-cabal-file#6711739
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.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
* 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.
|
|
|
|
This commit was sponsored by Brock Spratlen on Patreon.
|
|
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.
|
|
Cheap flash drives need partitions aligned to 4 MiB in order to not be slow
(and to avoid extra writes). <https://lwn.net/Articles/428584/>
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.
|
|
|
|
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.
|
|
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.
|
|
Machine-specific properties for ARM boards are being collected here
See http://linux-sunxi.org/Mainline_Debian_HowTo and
https://wiki.debian.org/InstallingDebianOn/Allwinner
and https://wiki.debian.org/DebianKernel/ARMMP
Currently has 2 arm boards that I use.
This commit was sponsored by Anthony DeRobertis on Patreon.
|
|
Can be used to create disk images for arm boards using flash-kernel.
This commit was sponsored by Ewen McNeill.
|
|
This commit was sponsored by Ethan Aubin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Generalized the PartSpec DSL, so it can be used for both
disk image partitioning, and disk device partitioning, with
different partition sizing methods as appropriate for the different
uses. (minor API change)
* Propellor.Property.Parted: Added calcPartTable function which uses
PartSpec DiskPart, and a useDiskSpace combinator.
This commit was sponsored by Thomas Hochstein on Patreon.
|
|
(minor API change)
This commit was sponsored by Henrik Riomar on Patreon.
|
|
|
|
|