Note: The MySQL installation is resolved and has been placed on zaphod.
Now, onto the GUI/text-interface for LON-CAPA computer installation.
There was very little documentation on all of this, but after a few modified
anaconda install interfaces, I think I've figured out much of the basics
which I'm describing so you can know what is going on.
There are 7556 lines of python which control user input, hardware detection,
package processing, and other functions of RedHat 6.2 installation.
These 7556 lines of python are distributed over 22 python module files.
These 7556 lines of python are buried away in duplicate form in the following
two files on the RedHat CD: RedHat/base/netstg2.img
These .img files are gzipped ext2 loopback filesystems which can be mounted
(mount -o loop) after decompression (gzip -dc). Within these filesystems,
there is a usr/lib/anaconda.cgz file which, when unzipped (gzip -dc) provides
a cpio file. This cpio file has contents that can be extracted with the
cpio -idumv command. After manipulating the extracted contents, an
updated gzipped ext2 filesystem must be recreated by following the steps
* go to the directory right above the generated extraction directory
* use this command;
find anaconda | cpio --quiet -H crc -o | gzip -9 > anaconda.cgz
* place anaconda.cgz on mounted ext2 image
* unmount image
* compress image (gzip -9)
* place image back on the RedHat CD image you are developing.
Quite a number of steps, but believe me, it works just fine.
The 22 anaconda python modules are described as best I can by
looking at the source code and the occasional comments distributed
in the source code:
comps.py - reads in the RedHat/base/comps file to calculate
package groupings and dependencies necessary to
produce the type of RedHat system selected by the user
(in the original CD; Gnome, KDE, Server, customized)
fstab.py - evaluates, detects, and partitions the hard drive installation
media present on the computer that is being installed onto
gettext_rh.py - use GNU gettext message catalogs for both graphical-based
installation GUIs and text-based UIs. Provides algorithm for
all those scrolling lists of choices you see during a RedHat
gzread.py - a python script for reading and writing gzipped files
harddrive.py - "install method for disk image installs (CD & NFS)"
image.py - "install method for disk image installs (CD & NFS)", looks like
generic API without the details of harddrive.py
installclass.py - this is a public interface class. RedHat recommends that
ISVs (like us) customize installs by creating a new derived
type of this class.
This class appears to set up the installation steps that
the user is to be taken through.
isys.py - basic hardware detection of disks, smp, pci devices, network cards
iutil.py - hardware detection of CPU architecture, clock configuration,
utilities for file installations and test executions (such as X-windows
kbd.py - coordinates keyboard selection and character mapping
kickstart.py - coordinates skipping of all installation steps so as to do
a fully automatic install
lilo.py - sets up the computer being installed on to be bootable on a loaded
linux kernel on the boot record
mouse.py - sets up mouse configuration
pcmcia.py - works with pcmcia devices and probing
raid.py - driver for redundant arrays of identical disk
simpleconfig.py - generic data description of manipulating a config file on
syslogd.py - logs events on the system during the installation
text.py - encodes the presentation of text-based user interfaces for an
installation (as opposed to graphical-based)
todo.py - an aggregated listing of various things the installation has "to do"
translate.py - presents a cataloguing of different foreign language phrases
to allow for non-English-based installations
urlinstall.py - installation method for http-based network installs
xf86config.py - (opposite of text.py) encodes the presentation of
graphical-based user interfaces for an installation
So, in conclusion, the scripts that I will modify are
xf86config.py, text.py, installclass.py, comps.py, and urlinstall.py.