Kuro Auto Installer

= Kurobox Automatic Installer =

Project Goals
This project is intended to make a stable installer that can be used by anyone developing Kurobox applications or distributions. Its goal is to be simple enough to use that a novice can install their Kurobox the first time everytime. Its second goal is to develop an architecture that all distributions can easily take advantage of without unserstanding the internals of the installer.

Current Release

 * Release 1.2 was stamped on May 31, 2006
 * Release 1.1 was stamped on May 16, 2006 BROKEN DO NOT USE!!!
 * Release 1.0 was stamped on May 15, 2006

Supported hosts
Any host platform that has a working Python 2.4 interpreter should work.

Currently tested platforms:
 * Linux (Suse 10.0)
 * Windows XP

You can download Python at http://www.python.org/download/

Supported Target distributions
If you would like your application to be included contact me at linwoes at gmail dot com
 * Standard Revolution 1.0 release
 * Revolution 1.0 release with English Web
 * Sylver 5.0
 * Debian
 * Gentoo

Unsupported Target distributions
These targets currently are not supported, but will be soon
 * Fedora Core 4

= Download information = Kurobox installer

Revolution install

Sylver Install

Debian Install

Gentoo Install

= Developer Information =

Building an installer target
To use the installer all you need to do is simply create a configfile. The Config file is a simple XML format.

Note for developers I fully intend that after the 1.x release cycle I will not break compatabilily in major release series. The 1.x series is special because I think it meets all the needs, but we shall learn all too quickly it does not.

Config file layout

 * distribution : Name of distribution
 * version : Version
 * preinstall: (Optional) A script or executable that will run on the Kurobox before any disk partitioning occurs.
 * postinstall: (Optional) A script or executable that will run on the Kurobox after the distribution has been installed. Here you could customize the startup and cleanup anything that may need it.
 * image
 * filename: The distribution filename. (As of 1.1 this can be a URL to download from)
 * filetype: The type of compression used for the file above. valid types are:
 * raw - Just a file
 * zip - Windows zip format
 * tar - Unix tar format
 * gz - Gzip format
 * tgz - Unix Tar + Gzip format
 * tbz - Unix Tar + Bzip2 format
 * pasword: (Optional) Password to decrypt the compressed file (Unsupported)
 * network: Network device name (eth0)
 * ip: IP Address to assign to the configured Kurobox (dhcp Only)
 * netmask: Netmask Address to assign to the configured Kurobox (dhcp Only)
 * broadcast: Broadcast Address to assign to the configured Kurobox(dhcp Only)
 * hostname: Hostname to assign to the configured Kurobox
 * disk - The device to install on (hda)
 * fdisk - if yes, then run fdisk to create partitions
 * partition - Number of the partition. You may make any number of partitions, but the Kurobox must boot from /dev/hda1.
 * name - Descriptive name of partition
 * size - Size of partition. Can be in blocks, numM, numG, or REST. A single partition should be of size REST as it will use all remaining space.
 * fstype - Type of filesystem to create on the partition
 * format - If yes, format partition to create filesystem

Changelog
Changes from 1.1 to 1.2
 * Do Not use 1.1! It is just plain broken. 1.2 fixes the installer.
 * Use os.path.split for configfile parsing.

Changes from 1.0 to 1.1
 * Added support for remote fetching of distribution image from URL provided in filename.
 * Added ability to use directories to store distribution info.
 * Fixed bug where installer crashed if no physical Kurobox was found.
 * Added check such that kuro_installer can be imported from other sources.

Version 1.0
 * Initial Release

Upcoming features

 * Add support for a series pre and post install actions
 * Add support for configuration of network interfaces
 * Add support to and name label to partitions that support it
 * A better user interface to allow a user to customize some settings in real-time.
 * GUI interface to installer
 * Image file verification via md5sum
 * Code Cleanups
 * Allow alternate filename/URL for distribution