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 micplaced ) 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
Renamed function dependencies_check to check_deps.
Also renamed files in scripts/ to have a .sh suffix which are bash shell
snippits:
dependencies_check -> check_deps.sh
common -> common.sh
Note check_deps.sh already existed in the tree but was an empty file
probably intended for the function now contained within.
Also added a comment at the top of the .sh files which are sourced so
that syntax-highlighting editors which distinguish between different
/bin/sh syntaxes have a clue to use the bash variant.
* 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.
* README.md: document config file
Still pretty sparse, but as this bit is necessary to actually use
pi-gen, here it is.
* README.md: Overview of Raspbian's stages
* README.md: Stages -> Raspbian Stages + heading
Decided that the Stages heading probably made more sense as being
retitled to refer specifically to Raspbian since it has no direct
bearing on pi-gen itself which could produce any Debianish system for
the pi, and also that there ought to be a Stage Anatomy section first
talking about the nuts and bolts of what goes into these stages.
Stage Anatomy is just a heading for now.
* README.md: Make Config section less conversational
Left the stage overview as it was since it's intended more as a plain
language explanation than a technically complete look. I believe that
kind of information is useful to have, but perhaps as README.md becomes
longer it may be advisable to move it to another location.
In that case (i.e. stage2/01-sys-tweaks and stage2/02-net-tweaks) a
directory with a same name (00-pc) is getting created for both quilt
patch sets. This might yield a situation when second patch set is not
applied.
The fix is to come up with a more sophisticated naming convention for intermediate
patchset directory (which .pc symlinks to) and create separate
directories for each patchset.