Installer Overhaul

For a while now, codeman and I have been working on a major overhaul of GLI (Gentoo Linux Installer or “the installer”). After I wrote Quickstart, it became apparently that the entire reason for GLI’s current design was no longer valid, since Quickstart was already more functional as an automated installer than GLI ever would be. We decided to drop the “configure first, then install” structure that the installer was originally designed with.

The results have so far been more than we could have hoped for. The entire install is now done in real-time (like virtually every other installer out there). For example, adding/deleting a partition takes effect immediately, clicking the Next button on the stage selection screen downloads and unpacks the stage before you move on, etc. Just the partitioning change has eliminated one of the largest complaints about the installer of old (it tended to eat partition tables if there was anything “weird” about the existing layout, such as partitions out of order, primaries after an extended, overlapping partitions, etc. due to the fact that it had to track all the changes in memory, serialize it to XML, read it back from XML, compare to the existing disk layout, and then make the existing match what was in the XML).

This allows us to do many things that we couldn’t do before, such as allowing the user to go back and change a setting if an install step fails, opening up an xterm/gnome-terminal window for ‘make menuconfig’ so the user can configure their own kernel, etc. Of course, you now have to babysit the installer, but you have to do that with a manual install, too.