File:  [LON-CAPA] / doc / Attic / anaconda_packages.txt
Revision 1.1: download - view: text, annotated - select for diffs
Wed Aug 30 19:03:57 2000 UTC (21 years, 11 months ago) by harris41
Branches: MAIN
CVS tags: stable_2002_spring, stable_2001_fall, HEAD
This discusses how to alter various aspects of the RedHat installation interfaces (both graphical-based and text-based).

Hello,

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.

comps.py
fstab.py
gettext_rh.py
gzread.py
harddrive.py
image.py
installclass.py
isys.py
iutil.py
kbd.py
kickstart.py
lilo.py
mouse.py
pcmcia.py
raid.py
simpleconfig.py
syslogd.py
text.py
todo.py
translate.py
urlinstall.py
xf86config.py

These 7556 lines of python are buried away in duplicate form in the following
two files on the RedHat CD: RedHat/base/netstg2.img
                          & Redhat/base/hdstg2.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
in reverse:
* 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
                install
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
     testing)
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 
                  the system
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.

-Scott

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>