summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/anaconda-design29
-rw-r--r--docs/todo84
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)