diff options
-rw-r--r-- | docs/anaconda-design | 29 | ||||
-rw-r--r-- | docs/todo | 84 |
2 files changed, 113 insertions, 0 deletions
diff --git a/docs/anaconda-design b/docs/anaconda-design new file mode 100644 index 000000000..381dbe695 --- /dev/null +++ b/docs/anaconda-design @@ -0,0 +1,29 @@ + + +-----------------------------------------------------+ + | | + | Anaconda todo | + | | + +-------------------------------+---------+-----------+ + | InstallInterface | | | + +-----+----+------+------+------+ rpm | isys | + | GUI |Text| Kick |Script| Web | module | module | + | | | Start|Start | Start| | | + | | | | | | | | + | | | | | | | | + +-----+----+------+------+------|.........|...........| + | | + +-----------------------------------------------------+ + +Anaconda is the toplevel installer. It imports InstallInterface +from one of several frontend modules. Currently text and GUI are +implemented. The 'anaconda' script imports the InstallInterface +then envokes the 'run' method, providing a todo structure +that needs to be filled in. The information collected in the +InstallInterface portion of the installer is set in the todo +object. When InstallInterface::run exits, the todo object should +have all the needed information to complete an install. +ToDo::doInstall() is invoked, which actually does the work of +installing the system. During the doInstall run, various InstallInterface +methods are called to keep the user informed about the installation +process. These currently include popup windows and package +progress windows. diff --git a/docs/todo b/docs/todo new file mode 100644 index 000000000..7c3c58ecc --- /dev/null +++ b/docs/todo @@ -0,0 +1,84 @@ +The following screens will be needed for the 6.1 installer. Each +screen represents some data that must be filled out in the ToDo +object. The ToDo object provides the interface with choices in some +cases. The ToDo object will then do actions based on the information +given by their various InstallInterfaces. + +This is a listing of each needed dialog, each bit of data the given +dialog will fill into the ToDo object, and the action the ToDo object +will do with the data. + +Language selection + ToDo provides: a list of supported language locales + in: todo.setLanguage('en') + out: todo.writeLanguageConfig() writes /etc/sysconfig/i18n + +Keyboard selection + ToDo provides: a list of supported keyboard maps + IN: todo.setKeyboard('us') + OUT: todo.writeKeyboardCfg() writes /etc/sysconfig/keyboard + +Time setting/timezeone selection + ToDo provides: a list of valid timezones + IN: todo.setTZ('US/Eastern') + OUT: todo.setupLocaltime() symlinks /etc/localtime + +Mouse Configuration + ToDo provides: a list of possible mouse choices + Uses 'isys' module to probe mouse port + IN: todo.setMouse('/dev/ttyS0', 'Generic Mouse (PS/2)') + OUT: todo.writeMouseConfig() writes /etc/sysconfig/mouse + +X Configuration + Uses 'isys' module to probe PCI for video card + IN: todo.setXConfiguration('server | cards entry', monitor, [ resolutions ]) + OUT: /etc/X11/XF86Config, /etc/X11/X symlink + +Disk partitioning + (this one is tricky) + ToDo provides (through libparted): a list of disks objects with lists + of partitions in them. + IN: the InstallInterface modifies the objects passed to it + OUT: todo modifies the filesystems by running the write method of + each disk object + +filesystem mounting locations/filesystem init + IN: todo.addMount('hda1', '/', format = 1) + todo.addmount('had2', 'swap', format = 1) + OUT: todo.writeFsTab() writes /etc/fstab + todo.formatFilesystems() formats given filesystems + +LILO configuration + IN: todo.liloLocation('hda') + OUT: todo.installLilo() writes /etc/lilo.conf and runs lilo + +Bootdisk option + IN: todo.createBootdisk({0,1}) + OUT: todo.writeBootdisk() writes boot disk (after prompting user) + +Package Component selection (major groups such as 'GNOME') + ToDo provides: a list of 'comps' objects. + IN: todo.comps['Foo'].{un,}select() to select/unselect + OUT: sets 'selected' flags in the todo.hdrlist which translates + to package transaction set during ::doInstall() + +Individual Package Selection + ToDo provides: the hdrlist + IN: toggle the selected flag in each member of the hdrlist + OUT: transaction set + +Authentication configuration (shadow/md5/yp setup) + IN: todo.setAuthConfig(shadow = 1, md5 = 1, enablenis = 1, + nisdomain = 'devel.redhat.com', + nisserver = 'devserv.devel.redhat.com') + OUT: todo.writeAuthConfig() runs authconfig with the --kickstart + options in the installed system chroot(). + +Root password + IN: todo.setRootPassword('tclmeRHS', isCrypted=0) + OUT: todo.writePasswd() writes /etc/passwd with the crypt()ed password + +Non root user setup + IN: todo.setUserList(list of (user, password, iscrypted)) + OUT: todo.writePasswd() writes /etc/passwd with the crypt()ed password + (see root password) |