This commit adds a packer configuration to build an AWS AMI. The AMI
works in that it is a bootable void image that if it could be imported
to AWS it would be bootable and would work. Unfortunately, AWS is
doing really naive string parsing on files in /boot rather than
checking that the contents are actually what they claim to be so the
import task fails.
NOTICE: AWS is the only cloud that this has been observed happening
on. We can run as a vendor supported distro in GCP and in Azure
clouds, and so if you need Void on an enterprise cloud those are the
providers to look at. If you're interested in a hobbyist cloud, Void
runs critical infrastructure in DigitalOcean and it is a fully
supported environment.
We could probably masquerade the kernel as something that would pass
the string parsing, because it appears that this parsing layer exists
only in the vm import service and not actually in any of the
functional parts of EC2, but that would require using a different
mechanism to install Void, and the ROI on supporting a single cloud in
this way just isn't there. This import mechanism also appears to only
work on amd64 architectures, so it can't even support the newer
graviton instance types.
Including a copy in void-packages turned out better solution.
Grep in image don't have required perl regexps, and getting
one that have make linting slower by order of magnitude.
Even if it was already there, simply using image is
unnecessarily slower.
This reverts commit 163a923529.
Instruct xbps-install to do unpack only, so packages can be properly
configured by xbps-reconfigure call.
Before, xbps-install was sometimes marking packages as configured,
thus making xbps-reconfigure call useless.
intel-ucode went to nonfree repository
with void-packages/450dd113fbb87e9299161bb7143536249ecb16c2
It makes more sense in permanent installations anyway
Create boot partition starting at 32768 sectors on pinebookpro
platforms. That leaves enough unallocated space to install u-boot
without overlapping with any partition.
So far, image generation relied on the config shipped in the openssh
package to ensure root login with password, but as this might change in
the future, explicitly apply and document this requirement for embedded
images here instead.
The exception for GCP (disable root login) should still work as
intended.
Without -f, mkfs.f2fs refuses to overwrite an existing filesystem, causing installation to fail. With this flag we match the behavior of the other filesystems.
Right now the installer will print an error dialog but mark the
filesystems done anyway and march on, which will later result
in a failed GRUB installation.