Fixes#17.
Stage 2 is fairly minimal, stage 3 builds/installs OpenCV and WPILib et al, and stage 4
builds/installs the FRCVision webdash and adds the vision examples.
Other changes:
- OpenCV compiled with ffmpeg, OpenBLAS, and libgtk (fixes#79, fixes#80)
- OpenBLAS added to image (fixes#65)
- C++ Makefile is more easily extensible (fixes#71)
- Sources for everything are bundled into image into /usr/src
- README updated (fixes#16)
- pkg-config files for wpilibc et al are now installed and C++ Makefile uses them (if compiled local to Pi)
- Both dynamic and static libs are included in image
The only downside of all these changes (particularly the ffmpeg, OpenBLAS, and libgtk inclusion)
is the image size is now over 3GB (800MB compressed). The previous image didn't quite fit on a
2GB card however.
* 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.