Subject: Summer of Code: LiveCD Installer
To: None <tech-install@netbsd.org>
From: Jon Voris <jvoris@cs.stevens.edu>
List: tech-install
Date: 04/30/2006 21:52:48
Hello all,

I'm a student who is interested in participating in this year's Summer 
of Code with NetBSD. Many of the projects seem appealing, but I 
particularly like the idea of creating an installer for LiveCDs. Here's 
my first go at addressing the pertinent areas of the Proposal HowTo; any 
feedback is welcome.

The Project:
Currently, individuals who are potentially interested in using NetBSD 
must use separate CDs to test it out and install it. The goal of this 
project would be to create a program that users could launch directly 
from their LiveCDs to walk them through the installation process. This 
would ultimately be provided to users in LiveCD ISOs as an "Install this 
LiveCD to drive" option, but the main deliverable would be a GUI-based 
installation utility suitable for inclusion during the LiveCD creation 
process.

Here is a rough outline of a possible project schedule:
5/23-6/9: Familiarize myself with the ins and outs of sysinst and the 
LiveCD creation process and determine the best way to integrate the 
installation utility.
6/12-7/14:Create the installation utility without any automation; that 
is, there would be no platform detection included, so the user would 
have to manually select installation options.
7/17-8/21: Add platform and hardware detection to the process that would 
pick proper defaults during installation.

I believe that I would be able to dedicate about 20 hours a week to this 
project...would this allow for enough time to complete it?

OS installers themselves are nothing new - RedHat has Anaconda and 
NetBSD installation CDs have sysinst - but there are very few 
occurrences of LiveCD based installation utilities. AFAIK, Knoppix is 
the only platform that provides an install option with its LiveCD, and 
even this is very young (I checked the version on Knoppix 4.0; it's 
v0.3.19.13 with a heavy development warning). So I believe this would 
involve writing new code as opposed to a port or a rewrite. At the very 
least, the flow of installation could be borrowed from the current 
sysinst utility. I'm not familiar enough with sysinst to know if any of 
its code could be used as well - any thoughts?

The Project and NetBSD:
The installer itself seems best suited as a system utility that could be 
bundled along with the rest of the programs  on a LiveCD. I don't know 
exactly which interfaces this would use, however, because I'm not yet 
sure what the best way to integrate this into the system is. I'm also 
unsure of the current process for creating LiveCDs. The only link I've 
found is marked as out-of-date 
(http://www.reedmedia.net/misc/netbsd/live-cd.html). I'm also aware of 
the mklivecd and cdrtools packages - could this tie in to those, or 
should this be a more platform independent endeavor?

Beyond the NetBSD installation procedure, this project involves 
knowledge of platform detection techniques that I would also have to 
familiarize myself with.

Me:
I am a (very-soon-to-be) graduate student who is a long-time NetBSD 
user, but this would be my first foray into NetBSD programming. I have 
about 2 years experience writing financial software in Python and Java 
and a strong C++ background. I'm also familiar with SVN. My interests 
include applying AI concepts and security, and I am very interested in 
getting involved in Open Source in general and NetBSD in particular. For 
more about me check out my resume:
http://personal.stevens.edu/~jvoris/resume.htm
http://personal.stevens.edu/~jvoris/resume.pdf

Well, that's everything I can think of for the moment. I appreciate any 
feedback anyone may have.

Jon Voris