* Tidy up and simplify function code
* Allow to pass extra arguments to debootstrap, e.g. `--variant minbase`
* Preserve compatibility with existing function calls
* Added Docker support
- replaced necessity for devicemapper (through kpartx) by using parted and
losetup with offsets
- added Dockerfile
- added dependency for parted and grep
- added hints to README.md
- common: loop through unmounts, fix shellcheck warnings
* stage2: use debconf instead of console-setup patch. Fixes#41
* export-noobs/prerun.sh: Use nested mountpoint
While it seems elegant and intuitive to use separate bootfs and rootfs
mountpoints for compressing the partitions, doing so violates a
precondition of unmount_image that they be mounted as a tree. This
causes the image to not be properly unmounted and detached. A better
solution might be to pack up the previous stage's chroot directory, but
that rework can wait for the time being.
scripts/common.sh: Output device name correctly
A misplaced ) in unmount_image caused the loop device to be incorrectly
identified, resulting in a fair bit of chaos trying to unmount other
filesystems on /dev/mapper devices. Such as / on a LUKS-encrypted
installation, for example. The unmount will fail as it should and
build.sh will abort the build without any cleanup. Best to avoid that.
These changes closeRPi-Distro/pi-gen#19
* build.sh: Support comments in package files
This patch allows the use of hash comments inside patch files. It's a
little ugly, but it strips comments and collapses all whitespace down to
single space characters between package names. It handles comments
anywhere in a line, as well.
Was unsure if \ continuation of the long sed line or the inclusion of a
couple of lines of comments explaining what the sed expressions are
doing would be appreciated, so didn't include them in this patch.
* build.sh: whitespace fix
* build.sh: Use sed script for packages files
Broke the sed expressions out of build.sh and put them their own
documented sed script. This greatly improves readability and avoids
build.sh getting messier.
Broke the substitution command into two separate subs. The first just
deletes comments, and the second collapses all whitespace into a single
space. This too is easier to read, and catches a couple of edge cases
that would result it not all whitespace being collapsed. The result may
still have (one) leading and/or trailing space, which is acceptable.