/lunar-iso

Primary LanguageShellGNU General Public License v2.0GPL-2.0

#
# README file for the lunar-iso generation code.
#

-- Goal

Most of this code was written to automate the generation of homogenous
ISO images based on a fixed set of tools. The code should be as self-
sufficient as possible and generate as much of the binaries as possible
so porting to other platforms will be easy. Please keep this in mind if
you change the scripts and want to include binaries. This should be kept
to a minimum.

The ISO has been optimized to minimize the number of alien files. These
should always be as much as possible be provided by modules. The exception
are stored in template, and include several files which need to be filled
with something valid before you can start. Please take care of these files
and try your utter best to make sure you don't add files in the template
that really (really (really)) do not need to be in there.


-- Start

Right now the Makefile should provide you the proper list of steps to
take but there are a few necessary prerequisites that the CVS copy does not
contain:

 o A proper cache tar.bz2 of every required package (including core tools)
 o A full set of sources for each module
 o Configure the base parameters of the ISO in conf/config
 
You will need to provide this in order to succesfully perform all steps.
The cache copies wiil be used to bootstrap your ISO, after which basically
the scripts perform a rebuild of every package and create the optimum
least-common denominator dependency-based install. 

A fresh moonbase will be installed on your computer and a copy kept to be
transferred onto the target automatically.

The cache tar.bz2's may be left in /var/cache/lunar and will automatically as
needed be copied to cache/

The same goes for the sources, they end up in spool/


-- Building it

Here's a brief explanation of the make targets:

prepare		download all the required sources
init		setup the buildroot
dirs		make LSB dirs and a few more needed
toolset		fetch a copy of moonbase.tar.bz2 and install it
unpack		extract the cache tar.bz2's
etc		copy the template files that are not provided by modules
rebuild		rebuild all modules at least once
aaa_base	create a tarball with required but untracked files
aaa_dev		create static device nodes needed by iso and initrd
proper		clear temporary files in the image and clean up some misc stuff
memtest		create a memtest boot image
kernels		compile a set of kernels for both the initrd and to be installed
initrd		compose the initrd from the template and miscfiles
iso		create the final iso image
test		run some (limited) tests after `make iso`
dist		pack up the iso and calculate md5sums

misc. targets:
tar		create a big tar of the current BUILD tree
burn		burn the latest iso image
blank		blank an entire cdrw
clean		wipes it all away

The Makefile itself contains no configurable items. Copy the template config
in the conf/ directory to conf/config and adjust the values as needed for
your needs.