Pyramid from scratch
Summary
One of the current pain points with Pyramid, is that process for building a new release or upgrading the underlying OS and system binaries is a manual process and poorly documented. Pyramid from scratch is an attempt to document and automate this process for the benefit of Pyramid developers and for the benefit of Pyramid users which may want to build their own system.
Project resources
PyramidFromScratch/SystemConfigFiles?
PyramidFromScratch/DebootstrapIncludExcludes?
Architecture Overview
The process
1. Debootstrap the base OS install
2. Install pyramid kernel packages
3. Install additional packages required from the underlying operating systems package repos
4. Install pyramid specific packages
5. Make a copy of the functioning chroot environment
6. Strip all unwanted files from the new environment
7. Package the distro as a tar ball, this will be the "tarball" release
8. Create loop back disk devices for various image sizes (i.e. 64mb 128mb 256mb etc...)
9. Install tarball on said loop back disks
10. Install grub on said loop back disks
11. Create images of loop back drives using "dd"
12. profit
Debootstrap
Debootstrap will be used to get a base linux installation in a chroot environment. We will work of Ubuntu primarily but ideally the system should work with debian as well, or any other distro supporting debootstrap and the debian package manager.
Kernel Packages
Pyramid linux kernel packages will be created so they can be installed in the chroot environment.
Standard Packages
Required packages available through the underlying operating systems package repos will used whenever possible and installed in the chroot environment.
Pyramid specific packages
These will be packages maintained for Pyramid and may include things like default config files and required software not available in packages already.
OS stripper
This will be a script that will take a completed chroot environment and strip out all unwanted files to keep the distro size small. This could be done with a file blacklist or whitelist. The design of this still needs to be discussed.
Tar ball image
This will be like the existing tarball image. This is used when someone does not want to use one the existing "dd" disk images for whatever reason.
Disk images
The disk images will be used for people who want to easily flash their systems with a new Pyramid release
