<feed xmlns='http://www.w3.org/2005/Atom'>
<title>propellor/src/Propellor/Property/Parted.hs, branch master</title>
<subtitle>gnusosa's centralized propellor repository for hosts spin-up.
</subtitle>
<id>https://git.gnusosa.net/propellor/atom?h=master</id>
<link rel='self' href='https://git.gnusosa.net/propellor/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/'/>
<updated>2018-04-30T13:03:46Z</updated>
<entry>
<title>fix broken SemigroupMonoid transition &lt;&lt;loop&gt;&gt;</title>
<updated>2018-04-30T13:03:46Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2018-04-30T13:03:46Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=14fe4c4d6b5a29be94ecfc0572e0f9a9a081e795'/>
<id>urn:sha1:14fe4c4d6b5a29be94ecfc0572e0f9a9a081e795</id>
<content type='text'>
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.&lt;&gt;)
which is ugly and a land mine waiting to explode if someone changes it
to a nicer mappend = (&lt;&gt;) 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.
</content>
</entry>
<entry>
<title>semigroup monoid change fallout; drop ghc 7 support</title>
<updated>2018-04-23T17:20:13Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2018-04-23T17:20:13Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=9228bda32f0a3f6d52e7cc5eb444376e7b024d8c'/>
<id>urn:sha1:9228bda32f0a3f6d52e7cc5eb444376e7b024d8c</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>changes to allow GPT BIOS boot partitions</title>
<updated>2018-01-06T18:48:34Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2018-01-06T18:48:34Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=bc6045c8b5333ac5d407e8f4b96bb0d9f50dfa9a'/>
<id>urn:sha1:bc6045c8b5333ac5d407e8f4b96bb0d9f50dfa9a</id>
<content type='text'>
* Parted: Allow partitions to have no filesystem, for eg, GPT BIOS boot
  partitions. (API change)
* Added rawPartition to PartSpec, for specifying partitions with no
  filesystem.
* Added BiosGrubFlag to PartFlag.

Note that man parted does not list the "bios_boot" flag, but I found it in
its html documentation. Other flags may also be missing.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
</content>
</entry>
<entry>
<title>specify type</title>
<updated>2017-12-22T13:23:03Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-12-22T13:23:03Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=64fea7ecaf3bc223575f01687423be24403f2cf1'/>
<id>urn:sha1:64fea7ecaf3bc223575f01687423be24403f2cf1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fuzzy partition end location for parted</title>
<updated>2017-12-21T20:59:57Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-12-21T20:59:57Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=fd7ad4c7ce726de9d27bfe660c3e8366e2415cc2'/>
<id>urn:sha1:fd7ad4c7ce726de9d27bfe660c3e8366e2415cc2</id>
<content type='text'>
This should fix the reversion in GPT partition creation. See my long
comment for the gory details.

This commit was sponsored by Peter on Patreon.
</content>
</entry>
<entry>
<title>add missing</title>
<updated>2017-12-20T21:43:45Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-12-20T21:43:45Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=ddc4f39e228b0b995c3dccb470a116867638e679'/>
<id>urn:sha1:ddc4f39e228b0b995c3dccb470a116867638e679</id>
<content type='text'>
</content>
</entry>
<entry>
<title>disk partition alignment</title>
<updated>2017-12-20T21:10:40Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-12-20T20:10:34Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=4e20a920baa6c9106179c3d8a1e8e66ffd50ce9c'/>
<id>urn:sha1:4e20a920baa6c9106179c3d8a1e8e66ffd50ce9c</id>
<content type='text'>
Cheap flash drives need partitions aligned to 4 MiB in order to not be slow
(and to avoid extra writes). &lt;https://lwn.net/Articles/428584/&gt;
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.
</content>
</entry>
<entry>
<title>reorganized</title>
<updated>2017-11-18T09:02:24Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-11-18T09:02:24Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=492c52bfabb4d1772034eb15b263f5e257d2548b'/>
<id>urn:sha1:492c52bfabb4d1772034eb15b263f5e257d2548b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>new properties</title>
<updated>2017-07-25T21:48:47Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-07-25T21:48:47Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=d35c1c7ad1539da24e6ab071d8d669912f330f0c'/>
<id>urn:sha1:d35c1c7ad1539da24e6ab071d8d669912f330f0c</id>
<content type='text'>
* Added Rsync.installed property.
* Added DiskImage.vmdkBuilt property which is useful for booting
  a disk image in VirtualBox.
</content>
</entry>
<entry>
<title>calcPartTable using PartSpec DSL</title>
<updated>2017-07-21T20:05:50Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-07-21T20:05:50Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=5bd4c6e679ed605f1b37c201affb27096662c29f'/>
<id>urn:sha1:5bd4c6e679ed605f1b37c201affb27096662c29f</id>
<content type='text'>
* 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.
</content>
</entry>
</feed>
