1: Hello,
2:
3: Note: The MySQL installation is resolved and has been placed on zaphod.
4:
5: Now, onto the GUI/text-interface for LON-CAPA computer installation.
6: There was very little documentation on all of this, but after a few modified
7: anaconda install interfaces, I think I've figured out much of the basics
8: which I'm describing so you can know what is going on.
9:
10: There are 7556 lines of python which control user input, hardware detection,
11: package processing, and other functions of RedHat 6.2 installation.
12:
13: These 7556 lines of python are distributed over 22 python module files.
14:
15: comps.py
16: fstab.py
17: gettext_rh.py
18: gzread.py
19: harddrive.py
20: image.py
21: installclass.py
22: isys.py
23: iutil.py
24: kbd.py
25: kickstart.py
26: lilo.py
27: mouse.py
28: pcmcia.py
29: raid.py
30: simpleconfig.py
31: syslogd.py
32: text.py
33: todo.py
34: translate.py
35: urlinstall.py
36: xf86config.py
37:
38: These 7556 lines of python are buried away in duplicate form in the following
39: two files on the RedHat CD: RedHat/base/netstg2.img
40: & Redhat/base/hdstg2.img
41:
42: These .img files are gzipped ext2 loopback filesystems which can be mounted
43: (mount -o loop) after decompression (gzip -dc). Within these filesystems,
44: there is a usr/lib/anaconda.cgz file which, when unzipped (gzip -dc) provides
45: a cpio file. This cpio file has contents that can be extracted with the
46: cpio -idumv command. After manipulating the extracted contents, an
47: updated gzipped ext2 filesystem must be recreated by following the steps
48: in reverse:
49: * go to the directory right above the generated extraction directory
50: * use this command;
51: find anaconda | cpio --quiet -H crc -o | gzip -9 > anaconda.cgz
52: * place anaconda.cgz on mounted ext2 image
53: * unmount image
54: * compress image (gzip -9)
55: * place image back on the RedHat CD image you are developing.
56:
57: Quite a number of steps, but believe me, it works just fine.
58:
59: The 22 anaconda python modules are described as best I can by
60: looking at the source code and the occasional comments distributed
61: in the source code:
62:
63: comps.py - reads in the RedHat/base/comps file to calculate
64: package groupings and dependencies necessary to
65: produce the type of RedHat system selected by the user
66: (in the original CD; Gnome, KDE, Server, customized)
67: fstab.py - evaluates, detects, and partitions the hard drive installation
68: media present on the computer that is being installed onto
69: gettext_rh.py - use GNU gettext message catalogs for both graphical-based
70: installation GUIs and text-based UIs. Provides algorithm for
71: all those scrolling lists of choices you see during a RedHat
72: install
73: gzread.py - a python script for reading and writing gzipped files
74: harddrive.py - "install method for disk image installs (CD & NFS)"
75: image.py - "install method for disk image installs (CD & NFS)", looks like
76: generic API without the details of harddrive.py
77: installclass.py - this is a public interface class. RedHat recommends that
78: ISVs (like us) customize installs by creating a new derived
79: type of this class.
80: This class appears to set up the installation steps that
81: the user is to be taken through.
82: isys.py - basic hardware detection of disks, smp, pci devices, network cards
83: iutil.py - hardware detection of CPU architecture, clock configuration,
84: utilities for file installations and test executions (such as X-windows
85: testing)
86: kbd.py - coordinates keyboard selection and character mapping
87: kickstart.py - coordinates skipping of all installation steps so as to do
88: a fully automatic install
89: lilo.py - sets up the computer being installed on to be bootable on a loaded
90: linux kernel on the boot record
91: mouse.py - sets up mouse configuration
92: pcmcia.py - works with pcmcia devices and probing
93: raid.py - driver for redundant arrays of identical disk
94: simpleconfig.py - generic data description of manipulating a config file on
95: the system
96: syslogd.py - logs events on the system during the installation
97: text.py - encodes the presentation of text-based user interfaces for an
98: installation (as opposed to graphical-based)
99: todo.py - an aggregated listing of various things the installation has "to do"
100: translate.py - presents a cataloguing of different foreign language phrases
101: to allow for non-English-based installations
102: urlinstall.py - installation method for http-based network installs
103: xf86config.py - (opposite of text.py) encodes the presentation of
104: graphical-based user interfaces for an installation
105:
106: So, in conclusion, the scripts that I will modify are
107: xf86config.py, text.py, installclass.py, comps.py, and urlinstall.py.
108:
109: -Scott
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>