Novena First Run
Right now, I'm in the middle of packaging up various bits and bobs for the final Novena disk image. We have a kernel mostly decided, and we have a base set of packages. Furthermore, we have a script that creates a bootable disk and installs all of the support packages onto it.
Creating something you can build has always been a challenge. I've decided to use git-buildpackage, which prepares a Debian package file from a git repo. To use it, check out a repo, cd into it, and get the tag for the revision you want to build using "git tag". Then, build the package by running "git-buildpackage -us -uc --git-upstream-tag=[tag]".
This seems to be the easiest method to build packages reliably from source. It works for binary packages (such as our novena-disable-ssp package for Bluetooth), as well as for architecture-independent packages (such as novena-firstrun).
Speaking of novena-firstrun, we took a page from the Raspberry Pi playbook and we do all configuration using whiptail. This makes configuration very easy, and allows us to ship systems without a default user or root password.
While I'm at it, I've also packaged up irqbalance, which smooths out interrupts, and pulseaudio-novena, which adds support for things like headphone jack detection. All in all, just tying up lots of little loose ends.