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)